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

本文目录

贪吃蛇设计思想

  • 要求:
    • 1.学完C语言大部分基础知识
    • 2.能坚持看完本文
    • 3.本文发布的只是思想,详细代码请关注本博客下一篇文章(要等博主自己写完哦)
  • 目的:
    • 1.学了一年C语言,也是博主对自己的一次考验吧
    • 2.激发广大网友对编程的兴趣(能帮到大家是我的荣幸)
    • 3.增加网站收录量,提升网站排名

程序功能介绍

贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。


程序整体设计说明

任何一种游戏都必须具备开始部分,运行部分,结束部分。但其核心是运行部分,它是整个游戏程序的中间力量,故其对程序设计的严密性要求极其严格。

设计思路 贪吃蛇游戏设计的虽然总体分为开始、运行、结束三个过程,但其内部程序非常之复杂具体包括开始时的状态,游戏进行中如果得分其分数的累加程序的设计,当玩家游戏结束时所出现的音频及图片效果等设计的程序主要包括主函数,printf()函数,scanf()函数等各种输入输出函数。同时还运用了各种数据类型和运算符以及各种选择结构循环结构的重复使用。特别是运用了数组结构(1.2.3维)和函数之间的调用是程序更为完整清楚简便,易于读懂。这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来就像多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是由画矩形块和覆盖矩形块所覆盖。这样一个贪吃蛇游戏程序在所学的C语言知识下便设计成功。


数据结构设计及用法说明

开始部分:

由于贪吃蛇游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,由此我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面,这样玩游戏时比较有真实感,图像感。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景以及游戏运行时的音频效果,同时还要对游戏某些重要变量的初始化。

运行部分:

第一轮循环:第一步,出现食物;

第二步,蛇不停运动;

第三步,检查蛇是咬到自己或撞到墙壁;

由第四步起游戏有两条支线(A、B):

A :第四步,当蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;

第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;如果蛇没有在规定的时间内吃到食物,食物将自动消失。

第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;

B:第四步,蛇碰到自己或墙壁,终止游戏。 结束部分:

游戏结束时,显示“GAME OVER”背景图象,并配有比较忧伤的音乐,已经是约定俗成的规律了,我所设计的贪吃蛇游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,并提示玩家是否退出游戏或者是继续此前游戏。


有了上述的大致划分,我把整个程序划分成(13+2)个基本模块(其实就是函数的基本应用以及根据函数的用途所划分的小模块)


总流程图


分流程图 (模块)


更新至2016-10-12

后续内容请见下篇文章

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

重构实践:体验interface的威力(一)

背景     GIX4是一个建筑行业的指标计算软件,用于数据统计、分析。导入的大量数据,大部分呈现逻辑上的树状结构(关于它的重构,见:《重构一个繁琐的数据结构》...

1957
来自专栏开源FPGA

FPGA设计思想(持续更新)

一、 流水线设计   将原本一个时钟周期完成的较大的组合逻辑通过合理的切割后分由多个时钟周期完成。该部分逻辑运行的时钟频率会有明显对的提升,提高系统的性能用面积...

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

【推荐】分析的前提—数据质量

数据质量(Data Quality)是数据分析结论有效性和准确性的基础也是最重要的前提和保障。数据质量保证(Data Quality Assurance...

3065
来自专栏AI研习社

谷歌云工程师亲自示范:新发布的 Video Intelligence API 究竟怎么用

AI研习社按:3 月初,谷歌在 Google Cloud Next 2017 大会上对外公布了 Cloud Machine Learning API 更新。此次...

3317
来自专栏生信小驿站

Python Vs R:数据科学家的永恒问题pythonR结论

Python有一些使用案例,R也是如此。使用它们的场景各不相同。 更常见的是环境以及客户或雇主的需求决定了Python和R之间的选择。许多事情在Python中都...

852
来自专栏华章科技

做数据分析必须学R的4个理由

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的...

571
来自专栏BY的专栏

iOS噪音计原理、分贝计

4736
来自专栏happyJared

用python快速分析你的微信好友

itchat基于python开发,封装了大量调取微信功能的接口,使得开发人员可以快速基于这个框架来完成一些微信操作,在这之前我们要做的就是扫码登录,实际上这相...

752
来自专栏wblearn

UML学习归纳整理

之前在学校比较系统的学习过统一建模语言UML,但长时间没使用遗忘了许多,最近因工作需要,所以对UML重新学习和梳理一下。UML可帮助我们做软件需求分析和软件设计...

921
来自专栏PPV课数据科学社区

做数据分析必须学R的4个理由

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的...

2746

扫码关注云+社区