浅谈贪吃蛇的设计及算法

平时看起来小小的贪吃蛇做起来也是很需要思考的。

先看下贪吃蛇游戏的一些设定:
1.地图:我们假定地图为12*12,其中中间10*10为蛇可以走的区域,其余周边为墙。
2.蛇:包括蛇头和蛇身
3.食物:路径上会出现一个食物,被吃掉后会重新随机生成。

比起面向对象编程的construct2,用面向过程的C语言写起来自然更有难度。我们先用置顶向下的方法分析一下贪吃蛇程序所需的代码。

0.主程序
WHILE !gameover
Input ch
direct snake to ch
IF eat food
snake grows
END IF
END WHILE

1.打印游戏界面
我们将整个游戏地图(包括墙,空地,蛇和食物)储存在一个二维数组里。然后逐行进行打印即可。当数组里的数据不断更新,我们不断清屏打印地图出来时,就可以让人的眼睛以为是连续的动画画面。
这里写图片描述

2.控制蛇移动
我们通过键盘上的”WSAD”来对应蛇移动方向的“上下左右”。

然后在蛇走之前先判断蛇的下一步是什么,如果是墙或者是自己的身体,则让蛇死亡,如果是食物则让蛇长长一节。

蛇移动的算法:
在蛇的新蛇头的坐标储存 ‘H’,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值