用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 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

非主流自然语言处理:大规模语料词库自动生成

一、前言   写这篇文时,突然想到一个问题,大家的词库都是从哪来的?   之所以会这么有些意外的问,是因为从没把词库当成个事儿:平时处理微博,就用程序跑一下微博...

67612
来自专栏Java面试通关手册

六道面试中常见的智力题 来看看你会做几道?

下面的题目来自滴滴出行2017秋招题。这些题目是我自己觉得比较难或者比较容易出错的题目。

2454
来自专栏姬小光

请问#f00是什么颜色?

这道题,对于知道的人来说简直就是送分题,这还用问吗?不就是红色吗?而对于不知道或者没有用心的人来说,却无从入手,怎么回答的都有。

1.7K1
来自专栏算法channel

动态规划|相邻约束下的最优解(House Robber II )

01 House Robber II This time, all houses at this place are arranged in a circl...

3774
来自专栏苦逼的码农

动态规划进阶篇1---背包问题

给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装 入背包中物品的总价值最大?

1.8K3
来自专栏C/C++基础

P问题、NP问题、NPC问题(NP完全问题)、NPH问题和多项式时间复杂度

多项式关系形如O(nk)O(n^k),k为某个常数,n是问题的输入规模。例如,时间复杂度为O(nlog(n))、O(n^3)都是多项式时间复杂度。时间复杂度为O...

2221
来自专栏小L的魔法馆

第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--I-填空题

3465
来自专栏小红豆的数据分析

小蛇学python(2)两百行代码实现旅游中国34座大城市最短路径

直接说基础语法,也许大家不会感兴趣。前言之后的这一章,给大家介绍一下我最近写出来的一个小功能。用python语言实现GA算法来解决TSP问题,希望以此来激发大家...

2924
来自专栏程序员的诗和远方

Canvas基础-粒子动画Part2

紧接上一篇文章 Canvas基础-粒子动画Part1 其实这篇早在一个星期之前就应该发了,无奈事情太多,而且我又跑去写微信公众号了。 粒子动起来 有了上一...

3237
来自专栏HansBug's Lab

JSOI2015 一轮省选 个人题解与小结

T1: 题目大意:现有一个以1为根节点的树,要求从1开始出发,经过下面的点然后最终要回到根节点。同时除了根节点之外各点均有一个权值(即受益,每个点上的收益只能拿...

3538

扫码关注云+社区

领取腾讯云代金券