接着上篇文章写
首先分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述: 蛇:
基本描述:
长度,颜色,位置。
对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大, 所以换算成较大的单位—节数,以固定长度的每节描述;坐标 -- 整型;颜色 -- 整型; 位 置-- X,Y坐标。
增加的描述:
蛇运动的方向,蛇的生命。
对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部 分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:
贪吃蛇的生命就只有两种情况:死或生,对应的逻辑运算符为 0 或 1 及真假。
食物:
基本描述:
颜色,位置。
对应数据与数据类型:
由于颜色设成固定的,所以不再讨论。位置— X、Y坐标。
增加的描述:
食物的存在。
对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有 联系。只有两个值: 0 或 1(没有食物,有食物或食物消失)
其他的元素:
墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际 的墙壁就是四条直线组成的边框,由坐标描述。
还需要的变量:键盘键入的键值(作为全局变量,整型) ;
经常要使用的循环变量;
自定义的填充图案;
说明文字的字符数组;
游戏的记分;
游戏的速度(蛇的速度) 。
蛇的不停运动的关键算法的流程图
主要模块的实现思路和算法的流程图说明:总程序是整个贪吃蛇程序的一个概括其具体
包括程序的开始,运行及结束和中间的具体细微的判断是否停止或继续进行此游戏。下
面是整个程序中极其重要的部分亦是核心部分。
关键所在——蛇不停移动的 Snakemove():
蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位 置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标 对应一节的位置, 假设有 i+1 节,由 0 到 i 节,第 i 节的坐标取第 i-1 节的坐标,第 i-1 节的坐标取第 i-2 节的坐标 ??直到第 1 节取第 0 节的坐标。而第 0 节的坐标,即蛇头 的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使 其继续下去。还有在游戏开始或结束时所出现的背景图或者是音频效果在此过程中运用 了函数的输入输出如 printf(),scanf() 函数等。在游戏运行中所用到的数字(成绩)累 加如函数的调用循环使用。
思路分析完
代码就静候博主更新吧!!!