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

相关文章

来自专栏java工会

每个程序员要注意的 9 种反模式

有一个健康的自我批评对于专业和个人成长是很重要的。对于编程而言,自我批评的意义就是需要能查明设计中、代码中、开发中和行为中的无效或反效果的模式。这就是为什么反面...

642
来自专栏Albert陈凯

函数式编程很难,这正是你要学习它的原因

英文原文:Functional Programming Is Hard,That's Why It's Good   很奇怪不是,很少有人每天都使用函数...

2604
来自专栏Python专栏

Python | 爬虫爬取智联招聘(进阶版)

运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器

1031
来自专栏大宽宽的碎碎念

如何避免问渣问题?

43020
来自专栏CDA数据分析师

手把手教你用Python分析豆瓣电影——以《我不是药神》《邪不压正》为例

《我不是药神》是由文牧野执导,宁浩、徐峥共同监制的剧情片,徐峥、周一围、王传君、谭卓、章宇、杨新鸣等主演 。影片讲述了神油店老板程勇从一个交不起房租的男性保健品...

1263
来自专栏新智元

MIT 开发廉价闪存设备,处理图数据性能堪比服务器

1063
来自专栏Golang语言社区

【Go 语言社区】Golang语言设计哲学--转

世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界; 世界是由物质组合构成的---微观世...

3905
来自专栏Jerry的SAP技术分享

你的项目刚刚启动?是时候考虑Globalization了!

关于这个很长的定语的由来,请参考这篇文章,里面有王聪的背景介绍,包括他种菜的特长:当我用UI5诊断工具时我用些什么。

922
来自专栏C语言及其他语言

【图书】嗨翻C语言

内容介绍: 你能从这本书中学到什么? 你有没有想过可以轻松学习C语言?《嗨翻C语言》将会带给你一次这样的全新学习 体验。本书贯以有趣的故事情节、生动形象的图片...

2695
来自专栏喔家ArchiSelf

IOT语义交互性之交叉

这个系列文章描述了一个单一的语义数据模型来支持物联网和建筑、企业和消费者的数据转换。 这种模型必须简单可扩展, 以便能够在各行业领域之间实现插件化和互操作性。 ...

692

扫码关注云+社区