对象:贪吃蛇小程序

(原代码见 https://blog.csdn.net/leslie5205912/article/details/78980006)

测试过程:

程序改动部分:

1.bug修复

经过测试,发现了一个bug:豆子的生成并不是随机产生的。

生成豆子部分代码如下:

void Creatfood(char map[Row_max][Line_max], int snake[Row_max][Line_max]) {//生成豆子

do{

food_x = rand() % (Line_max - 2) + 1;

food_y = rand() % (Row_max - 2) + 1;

} while (snake[food_y][food_x] != 0||map[food_y][food_x]=='#');

map[food_y][food_x] = '*';

}

此处原作者显然是准备随机生成豆子,然鹅没有给与随机数种子,可能是忘记了?

于是加上srand(time(NULL)); 语句根据时间生成随机数种子

(此处原作者使用 do{ }while (snake[food_y][food_x] != 0||map[food_y][food_x]=='#');语句保证随机生成的豆子不在蛇身上且没有落在游戏边框上)

经测试改动后无bug,种子能够正常随机生成了

2.主页面美化

原作者为了代码简洁,主页面仅显示一句"Press any key to start this game!"

还是美化一下吧orz

代码如下:

cout << "   ***      ****" << endl;

cout << "     ****   *  **Q     *<--food" << endl;

cout << "        *****" << endl;

cout << "" << endl;

cout << "-------The Gluttonous Snake-------" << endl;

cout << "" << endl;

cout << "  Use   ↑        W" << endl;

cout << "      ←↓→ or  A S D to control" << endl;

cout << "" << endl;

cout << "" << endl;

cout << " Press any key to start this game!" << endl;

改动后:

3.实时显示分数

玩家可能需要一个实时显示分数的功能?

于程序运行主要循环代码,也就是switch (ch) 部分添加语句如下

printf("\nScore:%d\n",score*10);

即可在每一次循环时输出当时分数的值

改动后:

疑问部分:

想要实现按下指定按键即重新执行程序,按下除此外任意键退出

但是使用while语句后,的确可以重新回到主页,但是不能正常继续执行程序,Creatsnake(snake);Creatmap(map);Creatfood(map, snake);Run(map, snake);均无法运行,会直接跳转到结束页Result();

使用代码如下:

int main() {

int k;

while(1){

system("cls");

cout << "   ***      ****" << endl;

cout << "     ****   *  **Q     *<--food" << endl;

cout << "        *****" << endl;

cout << "" << endl;

cout << "-------The Gluttonous Snake-------" << endl;

cout << "" << endl;

cout << "  Use   ↑        W" << endl;

cout << "      ←↓→ or  A S D to control" << endl;

cout << "" << endl;

cout << "" << endl;

cout << " Press any key to start this game!" << endl;

getch();

Creatsnake(snake);

Creatmap(map);

Creatfood(map, snake);

Run(map, snake);

Result();

k=getch();

if(k!='Y')break;

}

}

转载于:https://www.cnblogs.com/sakurazer0/p/10463329.html

软件保障与测试课程实践记录:贪吃蛇小程序相关推荐

  1. 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy

    ** 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy ** 一直很想写一个贪吃蛇的小程序,这两天终于抽空完成了,这里把我的思路分享给大家,仅供参考! 代码如下: 先放段主函数压压惊 v ...

  2. 贪吃蛇小程序·C/C++

    Hello,大家好,这里是"大千小熊",一个又会MMD,又会C++的正派角色.Bilibili同步更新,期待你的关注. 程序效果: 开始游戏的欢迎界面: 字符画(1) 开发商的Lo ...

  3. 使用VS开发桌面程序--贪吃蛇小程序

    为了更好的理解Windows程序的运行机制,笔者当年尝试写了第一个程序--贪吃蛇,逐渐从事公司部分Windows开发工作(当然主业还是嵌入式开发啦) 前期准备: 开发环境:Visual Studio ...

  4. C语言实现贪吃蛇小游戏!(超简单详细)详细思路+源码分享

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本.既简单又耐玩.该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长. 我们的今天的目标就是:用C语言来实现一个贪吃蛇项目,也不用 ...

  5. 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc

    嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...

  6. 计算机课程编程设计贪吃蛇游戏设计,c语言课程设计报告--贪吃蛇游戏系统

    c语言课程设计报告--贪吃蛇游戏系统 院 系 计算机科学技术学院 班 级 组 长 学 号 指导教师 2017 年 3 月 2 日 C 语言语言基础课程设计基础课程设计 贪贪贪贪吃吃吃吃蛇蛇蛇蛇游游游游 ...

  7. python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...

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

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

  9. Easyx图形库+C++做一个贪吃蛇小游戏 数据结构课程设计

    Easyx图形库+C++做一个贪吃蛇小游戏 数据结构课程设计 程序界面 ① 游戏开始界面(如下图): 显示游戏标题,提供"开始游戏"."游戏模式"和" ...

最新文章

  1. 开发必备快速定位排查日志 9 大类命令详解
  2. mfc窗口添加背景图片
  3. Nuget包制作最佳解决方案
  4. Python读取大文件的坑“与内存占用检测
  5. CSS- 横向和纵向时间轴
  6. 线性代数与矩阵论 习题 1.2.2
  7. java slf4j日志级别_java - 在slf4j中设置运行时消息的日志级别 - 堆栈内存溢出
  8. 高斯核原理详解+生成高斯核的Python代码
  9. du和df命令的区别
  10. Excel冻结窗格纪要
  11. 三维图像专业处理软件Dragonfly的快捷键设置
  12. 迭代需求文档规范(模板)
  13. 【转】SpringMVC的工作原理图
  14. 支持向量机原理(一) 线性支持向量机
  15. 微计算机断层扫描的用途以及测试样品要求
  16. excel2010如何在任务栏显示所有打开的excel文件
  17. 处理中文分词 ik分词器以及拓展和停止字典
  18. Flash的126个为什么
  19. 示波器抓板子串口,波形错误,杂乱无章
  20. 算法——买卖股票(动态规划)

热门文章

  1. 【限时免费报名】MongoDB原厂和阿里专家喊你来训练营上课啦!
  2. 性能提升2.58倍!阿里最快KV存储引擎揭秘
  3. 阿里巴巴与清华大学成立联合实验室,探索下一代人机自然交互
  4. 阿里公开Weex技术架构,还开源了一大波组件
  5. python34.dll_python34.dll下载|python34.dll下载官方版【32位|64位】-太平洋下载中心
  6. linux系统下怎么修改sshd端口?
  7. 朱峰谈概念设计(二):我们设计什么
  8. 人工智能(AI)在游戏中的应用(下)
  9. 手动安装em(redhat 5/oracle 11g)
  10. 寒假集训【1.26】