自学编程之路

第一个自己动手完成的游戏——贪吃蛇C语言版

上图为游戏效果,这是比较粗略的版本,目前只能实现普通操作:移动、吃食物、计分。待完成的功能有:游戏暂停、排行榜、按住加速等。

因为这个游戏是我纯自己动手写的(当然也有百度),对本人有很大的意义。下面我来介绍c语言实现贪吃蛇游戏需要哪些步骤:

游戏原理

 首先是移动原理,其实就是通过不断地刷新屏幕,通过控制刷新的间隔时间,还有打印蛇的身体让画面看起来蛇在移动。

其中控制屏幕刷新用的函数是windows.h下的sleep函数,调用为sleep(250)。我用的250毫秒,速度适中。然后紧接着打印一次地图和蛇,也就是打印一次,sleep一次,往复循环看起来就像蛇在动了。ps:地图是不改变的哦,所以看起来地图不会动。

然后是地图和蛇身如何制作,这是通过windows.h的内部函数完成的,先上图


其中setColor函数用来控制打印的颜色,也就是我的游戏界面地图和蛇的颜色都是由它来设置的。好看的颜色需要自己试验。第二个setPosition函数,这个函数非常重要,它可以控制光标在任意处打印。

其中形参为控制台窗口的坐标(x,y)。水平方向由左向右为x递增,竖直方向由上向下为y递增。如:我的蛇移动到了地图中间,我就要把我的光标移动到中间,再进行相应的打印操作。

地图的制作基本就靠setColor和setPosition两个函数就可以完成了,蛇的身体也是如此。

有了地图和蛇,还会移动。就只剩下接受按键来控制蛇的移动方向了。

移动方向

        接受键盘的按键要用到的函数是conio.h下的kbhit函数,它的返回值是键盘上的对应字符的ASCII码,                         

                                                                     这是由右向上移动的代码(count为身体的数量)

        如图所示,首先用kbhit函数判断是否键盘被按下,再用char型变量key来接收键盘按下的字符,用一个简单的switch结构来实现对应的移动。我把四个方向的移动都封装成了函数,其中蛇改变方向的原理就是:例如由右向上移动,则蛇头的坐标值(x,y)中的y--,然后蛇的第一节身体复制蛇头的前一个坐标,第二节身体复制第一节身体的坐标,以此类推。就能实现转向移动了。代码如图。同理,其他方向的转向也是如此。

完成了地图,蛇的移动。接下来就是吃食物啦

食物

首先是产生食物,就是通过setPosition函数和setColor函数来打印食物,随机新食物的话,就是用rand函数随机产生一个随机数的坐标就可以啦。ps:要注意随机数的范围 哦。

吃食物的话,其实就是蛇头的坐标与食物的坐标重合之后,蛇的身体数量+1,然后随机产生新食物,吃食物就完成了。


至此贪吃蛇基本就能运行啦。有不懂的地方或者你有更好的想法可以私信我,或者邮箱也行哦。[email protected]


猜你喜欢

转载自blog.csdn.net/Coppa/article/details/79782183