这个案例给出了14级同学大一时实现的贪吃蛇小游戏,分步骤代码、游戏素材可以从百度云盘下载:http://pan.baidu.com/s/1c1lYKQ

首先可以打开Exe_final目录下的Exe_final.dsw工程文件,编译运行,以下为对应的游戏动图效果:

主要实现内容包括:贪吃蛇移动 、道具判定、加速减速、生命条处理、分数处理、暂停处理、键盘或鼠标操控。

代码中Loop函数主要控制贪吃蛇的移动及每一帧的必须要完成的指令,其中小蛇的移动和转弯是贪吃蛇游戏实现的难点。

假设小蛇初始状态为:

上图左侧是对应游戏数据的二维数组存储状态,右侧为小蛇显示效果,蛇头为1,蛇身依次加1。

要让小蛇移动,首先遍历二维数组所有元素,元素为正 则加1:

对全局变量dir进行判断,比如dir==1 表示方向向右,则在元素2的右方设置为1,并且把最大元素归零:

以上就实现了小蛇向右的移动,向其他方向的移动实现类似。

双人游戏比较简单,在二维数组中实现即可:

Loop函数中除了贪吃蛇的移动,还实现了:减速包的随机出现、加速包的随机出现、血包的随机出现、障碍物的随机出现、苹果的随机出现、小爬虫的移动、无敌,加速,减速的判定。

Game函数是核心判定单元。根据贪吃蛇的移动方向dir的1 2 3 4, 分别对蛇头的右左上下方的元素进行判定:

是-1则吃了苹果,蛇身增长 并加分;

是-2则撞墙了,归零g1 游戏结束;

是-3则吃了葡萄, 蛇身增长 如果(wudi==0)也就是 并非无敌状态 g2减少;

是-4则吃了爱心, g2增加 wudi赋值为wuditime
,使贪吃蛇进入无敌状态 。

吃果子后贪吃蛇的增长,和贪吃蛇的移动差不多,唯一的区别是增长不需要把最大元素归零。

Show函数:

Start函数:

各个参数的初始化、二维数组a的元素初始化、对图片树的输出、分数显示、生命值显示的初始化、生命条的显示、倒计时画面

Interact函数:有两种操作模式 但本质一样都是对方向dir的修改

第一种 键盘 :根据wasd 把dir修改为1(d右)2(a左)3(w上)4(s下)、按p键暂停

第二种 鼠标
:在Loop函数中会计算出蛇头元素的下标it,jt、根据鼠标点击的横坐标m.x 纵坐标m.y修改dir

hello函数
:显示封面及游戏操作 道具使用说明

bye函数
:显示封底及最终分数

fs函数(记分记血系统):对贪吃蛇生命状态的判定和死亡提示

ryj函数
:获取包括鼠标左键在内的任意键

同学实现的代码不是很规范,大家可以先自己尝试实现,再参考网盘上的分步骤代码。

做游戏,学编程(C语言) 9 贪吃蛇相关推荐

  1. java gui怎么做游戏_Java中关于GUI实现贪吃蛇游戏的简单方法

    这篇文章主要介绍了Java GUI编程之贪吃蛇游戏简单实现方法,详细分析了贪吃蛇游戏的具体实现步骤与相关注意事项,并附带demo源码供读者下载参考,需要的朋友可以参考下 本文实例讲述了Java GUI ...

  2. 视频教程-做游戏学Python-Python语言快速入门-Python

    做游戏学Python-Python语言快速入门 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版 ...

  3. 语言写贪吃蛇墙角符号_从零基础到拥抱人工智能,您的孩子可能就差一个贪吃蛇游戏...

    去年寒假档,有一部孩子们喜欢的电影上映. 不知道家长们有没有陪孩子一起看过这部<无敌破坏王2:大闹互联网> 在电影中有一个印象深刻的镜头, 吃豆人.泡泡龙.还有贪吃蛇 他们都因为很久没有客 ...

  4. 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网

    资源名称:教孩子学编程 PYTHON语言版 PDF 资源目录: 第1章Python基础--认识环境1 1.1认识Python3 1.2用Python编写程序5 1.3运行Python程序5 1.4本章 ...

  5. 安卓c语言自动补全软件吾爱,C语言实现贪吃蛇小游戏

    本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 一.程序实现的原理: 1.构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置.这样就将移动蛇身的操作转换为 ...

  6. 【笔记】用vs2017 c语言写 贪吃蛇 小游戏

    目录 文章目录 前言 一.贪吃蛇游戏 设计逻辑 二.详细介绍 1.设置界面(界面大小,背景颜色) 2.设置贪吃蛇的身体并显示 3.使之能够移动并能够穿墙 4.添加食物并让蛇吃掉 5.设置背景音乐 完整 ...

  7. python教孩子学编程,教孩子学编程(Python语言版)

    教孩子学编程(Python语言版) 第1 章 Python 基础:认识环境 #NiceHexSpiral.py #运行后,挺奇特,整个作画过程,完全呈现. import turtle colors=[ ...

  8. 但凡原神有二十树脂,我也不会来学编程(c语言)

    但凡原神有二十树脂,我也不会来学编程(c语言)<第一天> 编程小白一只,从今天开始,将在本专栏记录本人学习编程的过程与心得~来自甘肃,普通双非,由于地域影响,想要在计算机方面得到好的出路, ...

  9. linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏

    Linux环境下C语言实现贪吃蛇游戏 [liul@test snake]$ more snake.c #include #include #include #include #include #def ...

  10. 贪吃蛇c语言经典程序下载,C语言实现贪吃蛇游戏(单人版)

    本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 相比于第一个:贪吃蛇游戏,功能更加丰富 #include"snake.h" //蛇的移动 void m ...

最新文章

  1. 使用XML作为配置表,WinForm程序读取配置表来动态显示控件
  2. 口令即漏洞 放弃它吧
  3. dubbo协议原理机制 单一长连接
  4. MySQL 修复root权限
  5. 《Python Cookbook 3rd》笔记(5.10):内存映射的二进制文件
  6. 自从阿里买了Flink母公司以后,你不懂Flink就out了!
  7. 第三章:变量与字符串等基础知识
  8. CB Insights发布AI行业25大趋势:中国人脸识别、无人商店发展迅速
  9. navicat远程连接mysql,2003 can't connect to mysql server on 10038
  10. 如何恢复隐藏的窗口 已知进程名称_Windows 10如何显示文件名后缀?
  11. JMeter压力测试步骤
  12. 父与子编程之旅第十章pygame下载+安装+pip更新
  13. 常用服务器出厂默认管理口IP及账号密码
  14. 浅析VO、DTO、DO、BO的概念、区别和用处
  15. Word文档编辑受限解决办法
  16. 维生素C(抗坏血酸)摄入过多有啥后果?
  17. 小游戏-在评论留下你的运行结果吧
  18. Ubuntu软件安装与卸载
  19. element 解决 Error: target is not existed: .page-component__scroll .el-scrollbar__wrap
  20. 使用tortoisegit clone通过ssh clone远程库:invalid gitfile format: D:\Program Files\TortoiseGit\bin\Tortois“

热门文章

  1. Vivado设计流程(一)新建工程
  2. C++中的getline函数
  3. 使用远程服务器Spyder
  4. windows平台下压缩tar.gz
  5. Linux find命令 查找文件、目录
  6. 火星人敏捷开发手册2012-04-30新增敏捷日常跟进内容
  7. MapReduce案例
  8. @property 的属性class
  9. SQLServer:执行计划
  10. GNU C的定义长度为0的数组