C语言贪吃蛇的完善

来源:互联网 发布:最大的整型数据 编辑:程序博客网 时间:2024/05/22 06:26

在上次尝试建立了一个贪吃蛇游戏的雏形(蛇的长度固定、没有金币吃,其余与正常规则相同)后,今天打算对其进行修改以实现上述两项功能。
下面是上次的源代码,经过分析我发现,只需增加一个在空白位置随机产生金币的函数,并修改move函数以使蛇吃了金币后长度加一:
这里写图片描述
这里写图片描述

首先,我们需要增加一个在空白位置随机产生金币的函数food。先定义foodx 、foody以表示金币的坐标,然后使x、y是边框范围内随机产生的数,最后,加上一个条件:产生的位置必须是空格,否则继续生成随机位置直到该位置为空格,
在该位置放置金币,用“S”表示。
代码如下图:
这里写图片描述
之后需要对move函数稍作修改。首先,之前的判断条件是只要新产生的蛇头位置不为空格即game over,现在要改为新产生的蛇头位置既不是空白又不是金币。在游戏没有结束的情况下,需要分两种情况:第一,新蛇头位置为空白,即没吃金币,则和之前的版本完全一样,照搬即可。第二,新蛇头位置为”S”,即吃了金币,此时与之前的区别是蛇的长度加一,加的那一节长度到了哪里去呢?是加到了蛇尾处。因为原先是蛇的长度不变,因此每一段的要往前走一步取代之前它前面那一段的位置,因而原先的最后一个位置被淘汰,退化为空格。而现在吃了金币后长度加一,可理解为金币变成了新蛇头,后面的都不变,因此在原先基础上,把给原来最后一段赋值为空格改为赋值为“X”,即蛇身。修改后move函数代码如下图:
这里写图片描述
这里写图片描述
此外还有一点需要注意:之前因为蛇身长度恒为4,因此存放蛇身位置的数组大小为4,但这时因为蛇身可能增长,所以数组需要留出些富裕以容纳增加的长度,这次设计的空间为10*11的,我们不妨就把这个数组的大小设为200,这样就绰绰有余了。
这时字符游戏贪吃蛇的改良就完成了,现在它已经有点贪吃蛇的样子了:
这里写图片描述
这里写图片描述

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 浴室镜子 浴室英语 浴室 砖砌浴室柜 古典浴室柜 玻璃浴室柜 浴室角架 附近的浴室 独立浴室 比翼鸟浴室之隐身 与曹查理浴室大干20分钟 爸爸在浴室里猛擦女儿 浴室少女20天恐怖图片 浴室少女20天图 后现代浴室柜厂家 整体浴室图片价格 浴室五金挂件品牌 浴室水龙头多少钱 浴室可以装空调吗 浴室加热用什么好 浴室置物架太空铝 浴室五金挂件安装 浴室架子三角置物架 浴室五金挂件批发 整体浴室怎么安装 浴室置物架哪个牌子好 浴室吊顶哪个牌子好 不锈钢浴室置物架 太空铝浴室柜好不好 浴室集成吊顶多少钱 九牧浴室柜怎么样 橡木浴室柜生产厂家 浴室置物架什么牌子好 浴室置物架什么材质好 浴室水龙头维修 浴室水龙头品牌 浴池图片 九牧王卫浴怎么样 整体卫浴间 哪个卫浴品牌好 304卫浴不锈钢浴室柜