软件保障与测试课程实践记录:贪吃蛇小程序
对象:贪吃蛇小程序
(原代码见 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
软件保障与测试课程实践记录:贪吃蛇小程序相关推荐
- 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy
** 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy ** 一直很想写一个贪吃蛇的小程序,这两天终于抽空完成了,这里把我的思路分享给大家,仅供参考! 代码如下: 先放段主函数压压惊 v ...
- 贪吃蛇小程序·C/C++
Hello,大家好,这里是"大千小熊",一个又会MMD,又会C++的正派角色.Bilibili同步更新,期待你的关注. 程序效果: 开始游戏的欢迎界面: 字符画(1) 开发商的Lo ...
- 使用VS开发桌面程序--贪吃蛇小程序
为了更好的理解Windows程序的运行机制,笔者当年尝试写了第一个程序--贪吃蛇,逐渐从事公司部分Windows开发工作(当然主业还是嵌入式开发啦) 前期准备: 开发环境:Visual Studio ...
- C语言实现贪吃蛇小游戏!(超简单详细)详细思路+源码分享
贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本.既简单又耐玩.该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长. 我们的今天的目标就是:用C语言来实现一个贪吃蛇项目,也不用 ...
- 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc
嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...
- 计算机课程编程设计贪吃蛇游戏设计,c语言课程设计报告--贪吃蛇游戏系统
c语言课程设计报告--贪吃蛇游戏系统 院 系 计算机科学技术学院 班 级 组 长 学 号 指导教师 2017 年 3 月 2 日 C 语言语言基础课程设计基础课程设计 贪贪贪贪吃吃吃吃蛇蛇蛇蛇游游游游 ...
- python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...
- 安卓c语言自动补全软件吾爱,C语言实现贪吃蛇小游戏
本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 一.程序实现的原理: 1.构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置.这样就将移动蛇身的操作转换为 ...
- Easyx图形库+C++做一个贪吃蛇小游戏 数据结构课程设计
Easyx图形库+C++做一个贪吃蛇小游戏 数据结构课程设计 程序界面 ① 游戏开始界面(如下图): 显示游戏标题,提供"开始游戏"."游戏模式"和" ...
最新文章
- 开发必备快速定位排查日志 9 大类命令详解
- mfc窗口添加背景图片
- Nuget包制作最佳解决方案
- Python读取大文件的坑“与内存占用检测
- CSS- 横向和纵向时间轴
- 线性代数与矩阵论 习题 1.2.2
- java slf4j日志级别_java - 在slf4j中设置运行时消息的日志级别 - 堆栈内存溢出
- 高斯核原理详解+生成高斯核的Python代码
- du和df命令的区别
- Excel冻结窗格纪要
- 三维图像专业处理软件Dragonfly的快捷键设置
- 迭代需求文档规范(模板)
- 【转】SpringMVC的工作原理图
- 支持向量机原理(一) 线性支持向量机
- 微计算机断层扫描的用途以及测试样品要求
- excel2010如何在任务栏显示所有打开的excel文件
- 处理中文分词 ik分词器以及拓展和停止字典
- Flash的126个为什么
- 示波器抓板子串口,波形错误,杂乱无章
- 算法——买卖股票(动态规划)
热门文章
- 【限时免费报名】MongoDB原厂和阿里专家喊你来训练营上课啦!
- 性能提升2.58倍!阿里最快KV存储引擎揭秘
- 阿里巴巴与清华大学成立联合实验室,探索下一代人机自然交互
- 阿里公开Weex技术架构,还开源了一大波组件
- python34.dll_python34.dll下载|python34.dll下载官方版【32位|64位】-太平洋下载中心
- linux系统下怎么修改sshd端口?
- 朱峰谈概念设计(二):我们设计什么
- 人工智能(AI)在游戏中的应用(下)
- 手动安装em(redhat 5/oracle 11g)
- 寒假集训【1.26】