C++小游戏设计 - 孔明棋
更新时间:2024-01-31 14:52:01 阅读量: 教育文库 文档下载
- c语言简易小游戏推荐度:
- 相关推荐
2009年计算机实习报告
计算机实习报告
姓名: XXX 班级: xxxxxxxxx 学号: xxxxxxxxx 小班序号:xx 指导老师:XXX 题目:“孔明棋”游戏设计 邮箱:XXXXXXXXXXX@XXXX
1
2009年计算机实习报告
题目《“孔明棋”游戏设计》实验报告
一.功能说明
1.1总体功能说明
“孔明棋”游戏的设计,是基于一种古老的同名单人桌面游戏,本程序实现了孔明棋的游戏功能,并提供撤销、重新开始、背景音乐、步数统计、游戏成绩记录等辅助功能,基本满足玩家的游戏需要。
在基本游戏功能方面,赋予棋盘上的33个点有子/无子两种状态,及有子/无子/选定3种状态。提供了移动光标、选定棋子、移动棋子、自动检测游戏是否结束等功能。
在辅助功能上,本游戏能够重新开始。同时,设计了步数统计系统,连续移动计一步,撤销也计一步,给玩家探索更简洁的方法提供必要资料。游戏成绩记录系统可以记录并显示游戏历史上最好的10次成绩。撤销功能方面,预先申请了足够的空间,可以存储游戏进程中的每一步,玩家可以任意改变操作。
在主菜单中,可以控制背景音乐的开关;游戏各个界面与主菜单之间也可以任意切换,玩家可以随时查阅规则和历史记录。 1.2用户界面
1、主菜单
进入游戏后的界面。在这个菜单下,通过不同的选项,分别进入游戏,查看游戏规则,开/关背景音乐和查看历史记录,或退出游戏。
2、游戏界面
2
2009年计算机实习报告
游戏主要界面。界面左侧是游戏进行的棋盘,右侧是操作说明。玩家将在这个界面下进行游戏,在实现基础游戏功能的同时,本游戏还提供了撤销、重新开始及返回主菜单的附加功能,方便玩家进行游戏。
3、游戏胜利界面
玩家在一局游戏胜利,并且成绩能够排进历时前十名的话,就会出现以上界面,要求玩家输入由3个字母的姓名。之后,将自动转到历史记录界面。
4、游戏失败界面
3
2009年计算机实习报告
游戏失败后的界面。询问玩家是否再次游戏。 5、规则说明
对游戏基本情况及规则的说明,按回车键可返回主菜单。 6、历史记录
4
2009年计算机实习报告
该界面将显示游戏历史上前十名的姓名与成绩。初始条件下,前十名姓名均默认为aaa,成绩均默认为100步。 1.3使用方法
在主菜单下,通过数字键选择下一步操作,4可以选择开/关背景音乐,查看游戏规则后或历史记录后,可按提示返回主菜单。游戏过程中,W、A、S、D分别控制上下左右;空格为选定/取消选定;退格为撤销上一步操作;M为返回菜单;回车为重新开始。
实心圆为放有棋子的位置,空心圆为未放棋子的位置。通过上下左右移动光标。移动棋子时,首先用空格选中一个棋子,然后用方向键选择移动方向。移动过后按空格键取消选定(实际上任意键均可),之后继续游戏。错误的操作不会产生任何效果。当棋盘上无子可走是,游戏会自动结束,并判定玩家是否取得胜利。创造记录后,须输入3个字母的名字。
二.程序设计说明
2.1 总体设计框架
5
2009年计算机实习报告
从键盘输入长度为3个字母的名字,再将新的记录输出到“save”文件。 2.3 程序设计的难点和关键点
关键点:光标的移动,棋子的移动及在控制台上的表示,结束判定。 难 点:撤销操作中应读取哪个记录的判定;游戏记录的生成和读写。 2.4 调试的方法
1、系统崩溃:反复运行程序,推测问题发生点。在推测的地点设置断点,按F10开始调试,再按F5运行至断点处,然后逐步调试,观察变量变化,找出bug。
2、游戏结束后,胜利判定失败:在判定处设置断点,按F10开始调试,再按F5运行至断点处,然后逐步调试,观察变量变化,找出bug。 2.5 程序性能评价
运行效果
优点:游戏功能基本完善,提供撤销、重新开始、步数记录、成绩排名等功能,游戏结束自动判定,满足玩家需求;程序设置两级菜单,在主菜单与各子菜单之间可以自由切换;提供背景音乐,并且可以开关;程序稳定,基本不会在游戏过程中出现bug。
缺点:游戏结束判定偏慢,需要跳出选定状态才能进行;游戏结束后,因结束自动判定,无法撤销,对最后一步走错的玩家不够友善;游戏未设置存档功能;在游戏过程中无法查看步数。
程序设计
优点:设计点类,用对象表示棋盘上点,体现了面向对象的思想;采用了输入输出流,可以读写游戏历史前10位的成绩记录;使用goto函数,增强程序灵活性;程序游戏部分健壮性好,不易出现问题。
缺点:除类外,程序中只有一个main函数,未设置其它函数,使main函数过于冗长;过多使用了if?else和for语句,其他结构使用不够充分;程序略显繁复,运行速度有待提高。
三.心得体会
在小学期近3周的工作之后,我亲手编制的第一个游戏终于基本成型了。欣喜之余,在本次实习报告的最后,写下我这段时间的一点体会。
任务开始之初,对自己编写程序还是十分没有把握的。然而,只是凭借半年学习积累的知识,老师提供的和从网上查阅的一些函数,在一番努力之后,还是成功的完成了这个任务,而且基本还算顺利。可见,C++的基本知识还是相对简单,真正庞杂的是在编程过程中需要随时查阅的各种函数。
从编写的过程来看,程序主体的构建并没有花太多时间,反而是后期的调试和修改占用了近一半的时间,很多附加功能都是在后期逐个添加进去的。由此,了解了设计初期详细规划的重要性,添加功能时,读原有代码,添加控制变量,修改代码耗费的时间远比一开始就编写进去要多得多。再者,后期的bug大多是产生于数据越界,或缺少控制量等原因,同样体现了初期设计完善之必要,也表现了思路完善的重要性。
总之,本次的变成体验是一次十分宝贵的经历,提高了我编程能力,更重要的是使我加深了对C++编程过程的理解,增加了实践经验。
16
正在阅读:
C++小游戏设计 - 孔明棋01-31
危机管理中政府职能重塑09-13
最美的希望作文550字07-07
安装工程类别划分标准及有关规定01-25
化学平衡移动 - 图文12-30
《楞严咒》繁体注音 - 精校版09-09
立磨操作员等级考试试卷(一级答案)03-30
自测习题05-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 孔明
- C++
- 小游戏
- 设计
- 冷菜间卫生管理制度
- 《傅雷家书》练习题及答案
- 教科版小学科学四年级下册《简单电路》教案及教学反思
- 新国标消防应急灯参考电路原理图-HN1203
- 尺牍书法中所见平阙书仪及艺术范式
- 郁亮给全体万科员工的内部邮件
- 2018年新人教版部编本语文小学三年级上册教学计划及进度表
- 主板重要测试点 - 图文
- 广东版开心学英语四上Unit 7《Working or Playing》word教案
- 稳岗补贴-企业情况
- 风险评估报告8.26
- 堰吉河大桥钢管混凝土泵送施工
- The Teaching of Vocabulary for - - Middle School Students(1)
- 2019年辽宁普通高中学业水平考试化学模拟试题
- 简单的说一下国产主动雷达红外成像导引头
- 市场营销-案例 - 最全 - 最好-4
- 在网络新媒体影响下传统媒体的生存方式
- 四大转型之我见
- 城市轨道交通网络化运营时的应急救援研究
- 2018学年第二学期温州十五校联合体期末联考高二历史(附答案) - 图文