用C语言写贪吃蛇笔记-2

接着上篇文章写


首先分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述: 蛇:

基本描述:

长度,颜色,位置。

对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大, 所以换算成较大的单位—节数,以固定长度的每节描述;坐标 -- 整型;颜色 -- 整型; 位 置-- 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() 函数等。在游戏运行中所用到的数字(成绩)累 加如函数的调用循环使用。


思路分析完

代码就静候博主更新吧!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据钻研

HTML5游戏前端开发【秘籍】

QQ空间Android版4.2和4.5上线的玩吧游戏“空间疯狂套牛”是一款使用HTML5开发出的手机游戏,虽然还有很多不足,但其中使用的一些技术与技巧还是很有...

3387
来自专栏前端知识分享

第134天:移动web开发的一些总结(二)

width —— 视口宽高 height —— 视口宽高 device-width —— 设备的宽高 device- height —— 设备的宽高 orien...

851
来自专栏Coco的专栏

你所不知道的 CSS 动画技巧与细节

1173
来自专栏Coco的专栏

你所不知道的 CSS 动画技巧与细节

1133
来自专栏ytkah

利用excel数据透视表实现快速统计相关数据

  昨天ytkah在做数据报表时需要做一些具体统计数字:公司每天都有人申请铅笔、笔记本等一些文具用品,现在想要统计每天申请铅笔多少支、笔记本多少本,如下图所示,...

28210
来自专栏前端桃园

Grid布局简介

没错,这其实就是我们小时候写的小格子本本,其实它跟我们今天要讲的主题Grid布局非常类似,其实Grid布局就是它的升级加强版。

1023
来自专栏点滴积累

使用 Cesium 动态加载 GeoJSON 数据

前言 需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加...

3945
来自专栏企鹅号快讯

Python数据类型之字符串第三季

Python字符串的格式化 大家可能也已经看到了 字符串在本系列课程中 常老师已经和大家一起探讨了好几节课了 何时为什么呢?? 大家别嫌磨叽(同音可能不同字)啊...

1779
来自专栏Crossin的编程教室

【Pygame 第12课】 屡败屡战

打飞机游戏,我们已经做得差不多了。今天要再加上两个功能,让它看上去更完整:显示分数、重新开始。这样,玩家才能一次接一次地玩下去。 要显示分数,首先得有一个变量记...

2645
来自专栏Coco的专栏

谈谈一些有趣的CSS题目(十六)-- 奇妙的 background-clip: text

1714

扫码关注云+社区