游戏基础课程设计

游戏基础课程设计
游戏基础课程设计

枣庄学院

信息科学与工程学院课程设计任务书题目:贪吃蛇游戏的设计与开发

专业:计算机多媒体技术专业

课程:游戏基础

姓名:

姓名:

姓名:

指导教师:孙晓飞职称:助教

完成时间:2013年12 月----2014年1 月

枣庄学院信息科学与工程学院制

2013年12月29日

课程设计任务书及成绩评定

目录

引言 (5)

1.工作计划 (5)

1.1 主要任务阶段划分 (5)

1.2 工作任务分工 (5)

2.需求分析 (6)

2.1 概述 (6)

2.2 用户分析 (6)

2.3 约束条件 (6)

2.4 功能需求 (6)

2.5 用户界面需求 (7)

3.设计与实现 (7)

3.1 概述 (7)

3.2 详细设计 (7)

3.2.1类的抽象与设计 (7)

3.3 主要程序文件 (8)

3.4开发环境以及部署环境要求 (10)

3.5主要源码 (10)

4.测试 (14)

4.1 概述 (14)

4.2 测试环境 (14)

4.3 测试计划 (14)

4.4测试项目及结果 (14)

5.工作总结 (15)

5.1 工作成果 (15)

5.2 过程分析 (15)

5.3 经验教训及其分析 (15)

引言

由于传统的贪吃蛇只是在一个宽阔的用户区进行游戏。对于蛇只是在区域四周有障碍墙壁,这样也许在一开始不会有太大的难度和成就感。

又由于人们曾经也钟爱一种迷宫游戏,它主要是考察玩家的观察力,看能否在最短的时间里走出迷宫。

基于以上两个游戏,我们准备利用本学期学到的windows界面程序设计方法将两个游戏有机结合起来,使用户既能体验贪吃蛇中看着蛇身不断加长而绕出各种折线的成就感,又能感受到在迷宫中找寻出路的紧张心情,而且迷宫的出现使蛇遇到的障碍遍布游戏区,这样用户就更能展示一下自己操作的高水平。

1 工作计划

1.1主要工作阶段划分

1.2工作任务分工

2需求分析

2.1概述

本人进行了对现有游戏代码的分析,借鉴了其中的部分实现思想,进而在组内进行讨论,根据我们的需求参与了程序中两个主要类的设计及类中接口的功能定义。并实现了CTable类的代码;

实现了对游戏界面框架的部分搭建,诸如对话框的实现等均有本人根据自己的现有知识,再加上网上查些信息、查看MSDN进行编写,而实现的接口则预留出来等待后期的具体核心代码来调用;

对游戏进行了测试,发现了问题并通过老师的帮助进行了解决。

2.2用户分析

1.该游戏至少支持贪吃蛇的基本玩法,创新可以有,但贪吃蛇游戏的经典玩法是不能少的;

2.该游戏对键盘输入要有较快的反应速度;

3.该游戏界面要漂亮一些;

4.该游戏要支持速度选择;

5.该游戏运行要比较稳定。

2.3 约束条件

1.该游戏比较简单,要求在一周进行进行完从分析到设计到编码再到测试;

2.提交游戏要有相应的文档。

2.4功能需求

1.贪吃蛇的基本玩法:即可以用上、下、左、右键控制游戏区蛇的运动方向,使之向着食物方向运动,并吞吃食物使身体增长;

2.调节蛇的运动速度:即用户可以调节蛇的运动速度来选择不同的难度;

3.选择关卡功能:即游戏分多个难度级别(关卡),用户可以选择不同的难度级别进行游戏;

4.背景颜色变换功能:即用户可以选择一种自己喜欢的颜色作为游戏区的背景色,避免对一种颜色产生视觉疲劳。

2.5用户界面需求

1.选择速度和关卡最好不用人手工输入,只是用鼠标点一点

2.界面的有些东西最好可变,不要总是一种界面,让用户自己选择也可以。

3设计与实现

3.1概述

1.界面的设计只是体力活和个人审美的问题,没有什么深奥的问题。虽说本游戏比较简单,但也是有其核心思想的。

2.本游戏的核心代码即处理蛇的运动吃食的思路是:把游戏区纵横分成许多小方格,每一个小方格的属性可以是蛇身、食物、空白、墙壁几个属性之一。蛇运动时用一个数组结构记录蛇的各个蛇身所处的小方格坐标,通过对坐标的处理使蛇的位置不断变化,反应在游戏区中即蛇在不断运动。

3.2详细设计

3.2.1类的抽象及设计

基于需求的分析,该游戏主要由两个类构成:蛇类用于处理蛇的运动等操作;桌子类用于对桌面上的墙、蛇、食物进行控制。

class CSnake

{

private:

int m_length; //蛇的长度

SPoint* m_pOldPos; //移动前的位置

SPoint* m_pNewPos; //移动后的位置

MoveState m_oldHeadDir; //蛇头旧的运动方向

MoveState m_newHeadDir; //蛇头新的运动方向

bool m_bSnakeDied; //蛇是否还存活

int m_oldLength; //蛇的上一状态长度

public:

Object Move(); //蛇的运动函数

void ChangeDirect(MoveState Direction); //改变蛇的运动方向

int GetLength(); //得到蛇当前长度

SPoint* GetOldPos(); //得到蛇上一状态坐标数组

SPoint* GetNewPos(); //得到蛇新状态坐标数组

MoveState GetHeadDir(); //得到蛇头方向

void SetDied(bool died); //设置蛇的生死

void InitSnake(); //初始化蛇

int GetOldLength(); //得到蛇上一状态长度

void IsAddBody(); //判断是否增加蛇身长度

CSnake(); //构造函数

~CSnake(); //析构函数

};

class CTable

{

private:

int m_width; //桌子宽

int m_height; //桌子高

CSnake m_snake; //桌子上的蛇

int** m_board; //桌子各位块状态

public:

CTable(); //构造函数

~CTable(); //析构函数

void InitTable(); //初始化桌子

bool AddFood(); //随机增加食物

bool Clear(); //清除桌子

void SnakeMove(); //蛇移动

void ChangeSnakeDir(MoveState dir); //改变蛇运动方向

bool IsSnakeDied(); //判断蛇是否死亡

void SnakeDied(HWND hwnd); //蛇死亡

CSnake* GetSnake(); //得到蛇坐标数组

int** GetBoard(); //得到桌子数组

};

3.3 主要程序文件

头文件有Map.h,其中只是保存游戏区二维数组中各个位置的属性信息,如果要更改地图布局,只需更改数组中的数字即可,数字的含义在全局变量中都有定义:

enum Object{EMPTY, FOOD, WALL, SNAKE}; //标识物体

头文件SnakeGame.h中主要定义了来两个主要的类CSnake、CTable;

实现文件SnakeGame.cpp中对了类中定义的函数以及一些全局的处理函数进行了实现。

主要类只有两个,即CSnake类和CTable类,其全部成员变量即成员函数已在上面一一列举,在这里针对一些主要的数据结构和处理方法进行说明:

struct SPoint

{

int x;

int y;

}; //蛇的一个结点的坐标位置结构,该类型变量用于记录蛇的一节身体在一个二维数组中的下标值,即蛇身在桌子上的格子的横向和纵向的位置

class CSnake

{

private:

SPoint* m_pOldPos; //移动前的位置,该变量为一个数组的指针,数组在蛇的初始化函数中

//分配

SPoint* m_pNewPos; //移动后的位置,同上。这两个变量是用于在更新蛇的坐标时将用旧的 //蛇身坐标来计算新的蛇身坐标用的

MoveState m_oldHeadDir; //蛇头旧的运动方向

MoveState m_newHeadDir; //蛇头新的运动方向,这两个变量的作用是用于判断新的蛇头运动方 //向是否与旧的运动方向相反的,相反是不允许的

public:

Object Move(); //蛇的运动函数

/*说明:该函数用于在定时器到达时对蛇的身体各段进行变化处理,处理过程为将未更新前蛇的各点坐标保存在旧态中,根据移动方向改变蛇头坐标值,然后判断新的蛇头所在方格的属性并返回给CTable 类处理*/

void ChangeDirect(MoveState Direction); //改变蛇的运动方向

/*说明:根据传进来的方向值改变蛇头方向,但不能跟当前蛇头方向相反*/

void InitSnake(); //初始化蛇

/*说明:用于在游戏中再次初始化蛇,只需设置蛇的初始两个身体坐标,初始运动方向,设置游戏开始即可*/

void IsAddBody(); //判断是否增加蛇身长度

/*说明:用于在分配给蛇身坐标数组填充满时再一次性多分配若干个长度的空间*/

};

class CTable

{

private:

int** m_board; //桌子各位块状态,这是一个二维数组,其中用于填充桌子各方格的属性public:

void InitTable(); //初始化桌子,针对不同的游戏难度级别从Map.h中调入不同的地图

bool AddFood(); //在桌子上空白区域随机增加一个食物

bool Clear(); //清除桌子上除了墙以外的其他方格的属性

void SnakeMove(); //蛇移动,只要调用CSnake的相应函数就可以了,根据返回的蛇头位置属性 //信息对蛇的坐标进行变换

};

3.4开发环境以及部署环境要求

开发环境:VS2008,WindowsXP SP3

3.5 主要源码

Object CSnake::Move() //处理蛇运动的方法

{

m_oldLength = m_length; //未更新前的长度成为旧值

for (int i = 0; i < m_length; i ++)

{

m_pOldPos[i].x = m_pNewPos[i].x;

m_pOldPos[i].y = m_pNewPos[i].y;

} //将未更新前蛇的各点坐标保存在旧态中

switch(m_newHeadDir) //蛇头当前要移动的方向,根据移动方向改变蛇头坐标值 {

case S_UP:

m_pNewPos[0].y --;

break;

case S_DOWN:

m_pNewPos[0].y ++;

break;

case S_LEFT:

m_pNewPos[0].x ++;

break;

case S_RIGHT:

m_pNewPos[0].x --;

break;

}

int m = m_pNewPos[0].x;

int n = m_pNewPos[0].y;

int iObject = GetData(m, n); //判断蛇头移动后到什么地方

switch(iObject)

{

case EMPTY: //蛇头所在位置为空,则蛇顺利移动

for (int i = 1; i < m_length; i ++)

{

m_pNewPos[i].x = m_pOldPos[i - 1].x;

m_pNewPos[i].y = m_pOldPos[i - 1].y;

} //从旧态复制相应坐标到新态

return EMPTY;

break;

case FOOD: //蛇头所在位置有食物

IsAddBody(); //判断是否需要增加蛇最大长度

m_length ++; //蛇长度加

for (int i = 1; i < m_length; i ++)

{

m_pNewPos[i].x = m_pOldPos[i - 1].x;

m_pNewPos[i].y = m_pOldPos[i - 1].y;

}

return FOOD;

break;

case WALL: //撞墙就挂了

m_bSnakeDied = true;

return WALL;

break;

case SNAKE: //自残也得死

m_bSnakeDied = true;

return SNAKE;

break;

}

return EMPTY; //这个其实不会被执行,但不写编译时总提示,反正写了也不费事}

void CTable::SnakeMove() //CTable中对蛇运动的处理

{

for (int x = 2; x < 28; x ++)

{

for (int y = 2; y < 43; y ++)

{

if (m_board[x][y] == FOOD)

continue;

if (m_board[x][y] == SNAKE)

continue;

if (m_board[x][y] == EMPTY)

continue;

if (m_board[x][y] == WALL)

continue;

m_board[x][y] = EMPTY;

}

} //蛇移动先把旧的蛇清理掉

int i = m_snake.GetLength() - 1;

int m = (m_snake.GetNewPos())[i].x;

int n = (m_snake.GetNewPos())[i].y;

m_board[n][m] = EMPTY;

if (++ iFirst == 0) //如果是第一次启动则自动先加个食物,以后吃掉才加 AddFood();

Object HeadObject = m_snake.Move(); //蛇要动了

switch(HeadObject) //根据返回的蛇头状态相应摆放桌子上的东西

{

case EMPTY: //空的就没有什么可摆的了

{

int x = (m_snake.GetNewPos())[0].x;

int y = (m_snake.GetNewPos())[0].y;

m_board[y][x] = SNAKE;

}

break;

case FOOD: //吃了食物要再给加的

{

int x = (m_snake.GetNewPos())[0].x;

int y = (m_snake.GetNewPos())[0].y;

m_board[y][x] = SNAKE;

AddFood();

}

break;

case WALL:

case SNAKE: //这两种就没的说了,只能死了

m_snake.SetDied(true);

bGameOver = true;

bGameBegin = false;

SnakeDied(hwndonly);

m_snake.InitSnake(); //这是为下一次重新玩作准备

Clear();

return;

break;

}

for (int i = 1; i < m_snake.GetLength(); i ++) {

int m = (m_snake.GetNewPos())[i].x;

int n = (m_snake.GetNewPos())[i].y;

m_board[n][m] = SNAKE;

} //该有蛇的地方放好

}

void CSnake::IsAddBody() //增加蛇身的代码

{

if ((m_length % 100) == 0)

{

SPoint* temp1;

temp1 = new SPoint[m_length + 100];

for (int i = 0; i < m_length; i ++)

{

temp1[i].x = m_pNewPos[i].x;

temp1[i].y = m_pNewPos[i].y;

}

delete[] m_pNewPos;

m_pNewPos = temp1;

SPoint* temp2;

temp2 = new SPoint[m_length + 100];

for (int i = 0; i < m_length; i ++)

{

temp2[i].x = m_pOldPos[i].x;

temp2[i].y = m_pOldPos[i].y;

}

delete[] m_pOldPos;

m_pOldPos = temp2;

}

else

return;

4 测试

4.1概述

1.测试速度选择菜单是否可以正常使用并对游戏效果产生需求所要求的影响;

2.测试背景色选择菜单是否可以正常使用并对游戏效果产生需求所要求的影响;

3.测试难度级别菜单是否可以正常使用并对游戏效果产生需求所要求的影响;

4.测试游戏是否可以正常操作

5.测试游戏是否有较好的响应速度。

4.2 测试环境

个人笔记本电脑一台,windowsXP操作系统;1G内存。

4.3测试计划

1.对基本的菜单功能进行测试:点击相应菜单,看是否能够进行正确的响应并对游戏进行了预期的设置;

2.对对话框的测试,打开对话框,对对话框内的控件进行点击测试,看是否能够正确响应并对游戏进行预期的设置;

3.对游戏控制键的测试:开始游戏,用键盘对游戏进行控制测试,看游戏是否及时正确处理键盘输入事件;

4.对游戏整体测试:进行每一关的游戏测试,看是否能正确进入相应关卡并正确运行,看违反游戏规则时游戏是否会结束;

5.对游戏占用内存的测试:运行游戏,看游戏占用的内存资源是否处于一个稳定的范围内,以此测试游戏是否有申请内存没有释放的问题。

4.4测试项目及结果

5、工作总结

5.1工作成果

首先我进行了对现有游戏的算法分析,借鉴其中的部分实现思想为我们小组所用,参与了对我们游戏的整体分析设计,即两个主要类的设计定义;

其次我实现了CTable类的代码;

再次,在游戏运行框架上,我结合自己的知识和查阅MSDN,对窗口部件中的各对话框进行了编码实现,当然包括其中的通用对话框——颜色对话框;

最后,在后期测试中,我也对游戏进行了测试,同组内人员共同发现了游戏对内存的消耗问题并努力进行解决。

5.2过程分析

在一周的时间内,我们通过查阅资料,结合自己所学,对游戏的整体进行了分析设计实现测试并取得了较为理想的结果,这首先与课堂上老师讲授的知识和方法是密不可分的。

其次,我认为我们能做好这个游戏,也在于我们为了达到目的而自己学习老师没有教的知识并及时消化吸收运用到实践中;

再次,游戏的代码是我们小组合作完成的,这与我们的密切合作,相互沟通是分不开的,这更对我们自己的团队合作方面是一个很好的锻炼。

5.3经验教训及其分析

1.由于时间有限,前期提出的一些想法和创新点未能最终实现,这确实是一个遗憾;

2.代码的编写不够规范,造成在交换工作成果时有时存在程序理解上的困难。这使得我们真正意识到编程规范的重要性,以督促我们在以后的学习中注意到这一点,学习并提高。

3.编程过程中有时对程序考虑还是欠佳,以至于在代码调试过程中没有语法错误,但运行总是不对,最后究其原因总是比较低级的错误。这使我们意识到编程中头脑中一定要对全局有把握并且在局部一定要细心考虑。

汇编课程设计汇本打字游戏

华北科技学院 课程设计说明书 专业:网络工程 课程名称: 汇编课程设计 设计题目: 打字游戏设计 设计时间: 2011-12-05 至2011-12-16 评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:___

课程设计报告的要求 1、需求分析 描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。 2、总体设计(程序设计组成框图、流程图) 3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等)) 4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施 5、测试结果,用几组测试数据进行测试算法设计的正确性。 6、附录。源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。 《汇编语言》课程设计案例 一、问题述及其需求分析 要求:利用汇编语言编写一个小的打字游戏 容:编写程序,在打开的菜单页面中选择游戏的难度。 难度选择包括以下5个选择 (1)very slow (2)slow (3)normal (4)fast (5)very fast 在编写过程中包括以下几个部分: (1)初始化上部分的字母 (2)获得下落的字母 (3)字母下移,同时覆盖原来的字母 (4)判断是否有输入 (5)若无输入则下落到最后 (6)覆盖原来的字符

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

扫雷小游戏课程设计

西安科技大学 软件工程课程设计报告 题目:扫雷游戏开发 班级:计科0901班 学号: xxxxxxxxxxxx 姓名: xxxxxxx 电话:xxxxxxxxxxxxx

2012年7月 目录 1 绪论 (3) 1.1 选题目的及意义 (3) 1.2 系统概述 (3) 2 可行性研究报告 (4) 3 需求规格说明书 (5) 4 总体设计说明书 (6) 5详细设计说明书 (7) 6 系统实现 (16) 6.1 开发环境 (16) 6.2 关键技术 (16) 6.3 运行结果 (16) 7测试分析报告 (17) 8心得体会 (19) 参考文献

1.绪论 1.1选题目的及意义 随着现在生活节奏的加快,人们在工作学习之余需要一个轻松娱乐的放松环境。因此我编写此软件的目的,一方面作为初学者来了解java环境下的小程序开发,另一方面使用户能在娱乐休闲的同时拓展思维能力。扫雷是单人计算机游戏。游戏的用户界面由小方格组成的战场构成。当游戏开始时,计算机将固定的地雷数随机的放到战场的方格。此游戏还允许玩家指定战场中的地雷数。 参考Windows 操作系统提供的扫雷游戏,改进扫雷游戏程序,增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。 背景说明: a.软件名称:扫雷 b.用户:所有扫雷游戏爱好者 1.2 系统概述 1.2.1扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别。单击游戏菜单可以选择“初级”、“中级”和“高级”。 (2) 选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击‘“开始”便启动计时器。 (3) 用户要揭开某个方块,可左键单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5)当用户点中雷时,将有“你输了”的提示出现,胜利时,将有“你赢了”的提示出现。 1.2.2 需实现的主要功能 用户可以自定义级别并且可以任意输入雷数; 具有计时功能,即显示用户完成移动盘子所花费的时间。

java课程设计报告--打字游戏

java课程设计报告--打字游戏 Java开发技术课程设计 (打字游戏) 学院:计算机与信息工程学院 学号:****** 姓名: ** 时间:2011年12月14日 一、程序描述 1.1程序设计的目的 通过java开发技术课程的学习,我初步了解了如何运用java语言编写程序。课程结束后,按老师的要求,在查找资料后,我完成了打字练习这个程序。 在这个过程中,主要达到了两个目的,一是检验和巩固专业知识,二是提高综合 课堂上掌握的理论知识与处理数据的素质和能力。通过该程序的编写,可以将我 业务相结合,以检验我掌握知识的宽度、深度及对知识的综合运用能力。 1.2程序设计的要求 (1)程序的界面会随机的出现字母和数字,玩家在键盘上摁相应的键后,界面上的对应的字符就会消失 (2)字符下落的速度可以选择,完成一定量的字符后,显示进入下一关,下一关的速度加快 (3)能统计正确与错误的字符数分别是多少

(4)程序的主界面是能够给玩家第一感官的部分,主要包括程序图形区域界面、程序的显示更新界面。 1.3程序设计的环境 Windows xp操作系统、Myeclipse编辑工具、jdk1.6 二、分析与设计 2.1 游戏处理流程 本次游戏设计的处理流程如下图所示 进入游戏画面 单击“开始”按钮, 游戏开始,字符开始随机。 根据出现的字符按相应的 键,对应一个消失一个(字 符)按对一定字符后将提示 进入下一关,下一关的速度 有所增加。速度也可单独调 节。 没有摁倒相应游戏中途欲中 的键,错误的断,稍后继续 数字将加一游戏 单击“退出” 单击“暂停” 退出游戏游戏暂停 再次单击开始 游戏,游戏恢复 游戏处理流程图 2.2需求分析

游戏开发课程设计报告模版-扫雷游戏报告(定稿)

中原工学院信息商务学院 课程设计报告 2016~2017学年第一学期 课程游戏开发课程设计 课程设计名称扫雷游戏 学生姓名*** 学号***** 专业班级数媒141 指导教师郑全录 2016年12月

目录 第一章设计内容及要求 (1) 1.1 扫雷游戏的基本要求 (1) 1.2 游戏需要实现的主要功能 (1) 第二章需求分析 (2) 2.1扫雷游戏界面设计 (2) 2.2 雷区的设计 (2) 2.3 音效的设计 (3) 2.4 扫雷英雄榜的设计 (3) 第三章总体设计 (5) 3.1 总体功能图 (5) 3.2 总体流程图 (5) 第四章主要功能设计流程 (6) 4.1 雷区设计流程图 (6) 4.2 音效设计流程图 (6) 4.3 英雄榜设计流程图 (7) 第五章主要功能设计流程 (8) 5.1 类之间关系图 (8) 5.2程序运行效果图 (8) 5.2.1 游戏登录界面 (8) 5.2.2游戏菜单界面 (9) 5.2.3游戏运行界面 (10) 5.2.4游戏英雄榜界面 (12) 第六章总结 (13) 参考文献 (14) 附录 (15)

第一章设计内容及要求 1.1扫雷游戏的基本要求 当前各种游戏层出不穷,因为游戏的开发成本非常大,所以游戏的开发具有一定的风险性,但是一些小游戏的开发成本具有成本小,编写简单的优势,所以这些小游戏在游戏开发中也占有一席之地。在这类小游戏中包括益智类游戏,它以画面精美、游戏方法简单等特点得到大家的认可。成为人们在工作之余不可或缺的好伙伴。针对这种情况我选择了扫雷游戏该课题作为我的课程题目。 Windows XP和Windows 7系统提供的扫雷游戏是一个很有趣的游戏。本次课程设计的主要任务是使用JA V A语言编写一个与其类似的扫雷游戏。具体要求如下: 1、扫雷游戏分为初级、中级和高级三个级别,同时扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 2、选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中任何一个方块便启动了计时器。 3、用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下没有雷,则显示一个数字,该数字代表此方块周围的8个方块中共有多少颗雷。 4、如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),窗口左上角的雷数计数器将会减少一个。 5、扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 6、用户如果遇到疑问的方块,可以勾选游戏菜单下的标记选项卡(或者用快捷键Alt+G然后点击M)即可标记该可疑方块,此时双击右键并可出现“?”标记。另有颜色选项,当用户选中该项时,游戏将以最低图像像素来显示。 7、如果用户需要使用提示声,可选中声音选项,此时将听到计时的咔嗒声。当用户点中雷时,将有爆炸声产生;胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2游戏需要实现的主要功能 1、用户可以自定义级别并且可以任意输入雷数; 2、具有计时功能,既显示用户完成所有扫雷任务所需要的时间; 3、自动保存扫雷英雄榜。

打字练习游戏程序

摘要 汇编语言(Assembly Language)是面向机器的程序设计语言,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 关键字:汇编语言、程序设计、助记符

目录 摘要 0 目录 (1) 前言 (2) 第1章系统分析 (3) 第2章系统总体设计 (4) 2.1打字程序包括以下五个子程序: (4) 2.2算法的整体设计思路 (4) 2.3程序的主要特点 (4) 第3章详细设计 (5) 3.1主界面伪代码 (5) 3.2等级界面伪代码 (5) 3.3游戏界面伪代码 (6) 3.4清屏子程序设计 (6) 3.5密码程序设计 (7) 3.6宏代码 (8) 3.6.1在指定位置显示彩色字符串 (8) 3.6.2显示背景 (9) 3.6.3画横向边框的宏 (9) 3.6.4画竖边框的宏 (10) 3.7功能的进一步完善 (11) 3.7.1完善代码一 (11) 3.7.2完善代码二 (12) 3.7.3完善代码三 (12) 第4章软件使用说明书 (14) 4.1密码界面图: (14) 4.2主界面图: (14) 4.3等级选择界面: (14) 4.4游戏界面: (15) 参考文献 (17) 致谢 (18) 源代码: (19)

前言 随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。而汇编语言作为计算机专业大学生必修课,每个作为本专业的学生对汇编的理解和学习就显得尤为重要。汇编语言是计算机能够提供用户使用的最快而又最好最有效的与言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。 《打字游戏程序设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。通过具体的问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。就这个程序具体而言:调用宏,显示背景和主界面,通过选择不同的选项,可以进入不同的界面;采用BIOS功能的中断,可以在任何时候退出当前所在的界面并通过选择进入其他的界面。这个程序最终通过菜单所提示的信息选取所要进入的界面,获得所要的功能。

C语言打字练习程序课程设计报告

青岛理工大学 《C语言程序设计》 题目打字练习程序 指导教师:李兰老师 姓名: 学号:2011 班级: 专业:计算机科学 地点:现代教育中心机房201 时间:2012.6.26 至2012.6.29

一、内容 本程序主要实现的是对使用者的打字速度进行练习和提高。因为界面友好亲和,因此能让使用者在轻松愉快中练习并快速提高自己的打字速度和准确性。程序主要的功能有记录使用者在本次使用中的击中数和总下落字母的个数之比。并且游戏设置了九个等级,随着数字的增加,等级越高,字母下落的速度逐步提高,这样能够更好的迎合不同水平的用户需求。使用本程序很简单,因为在写代码时,我很注重的是界面的友好,所以,在用户的每次操作前,界面上都有详细的操作提醒,只要跟着提示输入就能很快速地进入并开始练习。 二、上机环境 操作系统:windows XP(win7兼容) 开发工具:VC6.0 三、函数调用关系图 void main( ) start( ) printfScreen( ) levelChoice( ) newWord ( ) moving( ) wordHit( ) result( ) leave( )

四、各函数功能说明 1、void main( ) 主函数 2、void printScreen( ) 刷新屏幕函数 3、int levelChoice( ) 游戏等级选择函数 4、int newWord( ) 生成新字符函数 5、int moving( ) 字符下降函数 6、int wordHit( ) 击中字符函数 7、int result ( ) 结果输出函数 8、int start( ) 程序开始提示操作 9、void leave( ) 函数结束

C程序课程设计报告(扫雷游戏)

C程序设计 扫雷游戏 一、设计题目:扫雷游戏 二、设计目的 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基

本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 三、设计要求 1.汪洋和孔维亮组成设计小组。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 2.查阅相关资料,自学具体课题中涉及到的新知识。 3.采用结构化、模块化程序设计方法,功能要完善,界面要美观。 4.按要求写出课程设计报告,并于设计结束后1周内提交。 一概述 1)掌握数组指针的概念及其应用 2)培养团结合作精神 2. 课程设计的要求 要求我们有扎实的C语言知识,以及良好的编程习惯,能够熟练的应用循环,有毅力,还要求我们有较强的合作精神,善于总结。同时还要求我们自学C语言作图部分知识。在必要时还要上网查相关资料。 3.课程设计的主要设计思想 扫雷游戏主要用了一个10行10列的二维数组,刚开始利用random随机布雷。 每一个程序最主要的是算法。扫雷游戏算法的重点是一开始统计好每个格子周围有多少雷,当鼠标左键点在格子上时做出判断,如果周围8个格子有雷则显示出雷数,如果没有雷则显示空白格(在四个角的格子显示周围3个格子,其它边缘的格子显示周围5个的状态),我们在主函数中用两个for语句来判断周围雷数。我们还加了鼠标处理函数。 如果格子上有雷则调用函FailExitGame(),显示“Fail!”,游戏结束。若所有的雷都标出,且所有的格子都处理过,则调用函数ExitGame(),显示“OK,Good!”,游戏结束。游戏结束后,按任意键出去。

(完整word版)打字训练测试软件-Java课程设计

《程序设计实践》题目:打字训练测试软件 学校:陕西工业学院 学院:信息学院 班级:信管12-2 学号: 201213156619 姓名:刘克豪 2014 年 11 月 09 日

基础类、IO流与异常处理程序设计 一、实践要求 1.掌握Java常用基础类API。 2.掌握输入输出流常用类API。 二、实践要求 利用Java常用基础类API、输入输出流常用类API、Java异常处理等完成所选项目的程序设计。 三、项目需求 所选项目名称:打字训练测试软件 四、项目设计方案 EnglishGame类:主要构造都在这里完成。 MyKey类:是该程序的一个内部类。 EnglishGame作为主函数的入口。调用actionPerformed类的方法实现事件监听器。当发生点击事件时就会弹出输入框,开始英文打字功能。从而达到打字训练测试的目的。 五、核心算法详细设计 1 . public void actionPerformed(ActionEvent e) {} 2.public void keyReleased(KeyEvent arg0) {} 3. public static void main(String[] args) {} 4. public JPanel creatMenu() {} 六、完整源码 package shiyansan; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileReader; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.SwingUtilities; //所使用的包 public class EnglishGame implements ActionListener { private static JFrame f = new JFrame("英文打字游戏"); private static Container con = f.getContentPane(); JPanel mainPanel,panel0,panel1,panel2,panel3,panel4,panel5,panel6,panel7; JButton button1,button2,button3,button4,button,button5,button6; JTextPane tp1,tp2; FileReader fr; File frr; Date date1,date2; int num,len1,len2,count; long time; double rightrate; char[] ch; public void actionPerformed(ActionEvent e) {

扫雷游戏的设计与开发1

扫雷游戏的设计与开发 摘要 本论文研究的是以Visual Basic 6.0为开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法;重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归”这个概念而使其简单化。 本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待以后完善。 关键词:扫雷;Visual Basic 6.0;事件;递归

The Design and Development of Mine Game Abstract What my thesis research for is basic on the develop environment of Visual Basic 6.0 , design and develop a mine game,its function is similar to the mine games of the Windows Operating System .The thesis has introduced the layout of mined areas and the method of how to create the mines at random. It use vairies of components in Visual Basic 6.0 and the combination of some simple calculations; the thesis lays emphasis on introducing the processing of each event in the game. Among these events ,the mouse event and the event of clearance of the area which isn’t close to the mine field are much more important.The theory of mouse event is that the intention of user is learned by the information sent out by the mouse and then the program runs according to the information .The other event is simplified by the introduction of the concept of recursion. This design has been completed the basic function of mine game. The details still need to be improved. Key words: Mine game, Visual Basic 6.0, Affairs, Recursion

(完整word版)JAVA课程设计--扫雷游戏

合肥学院 计算机科学与技术系 课程设计报告 2009~2010学年第二学期 课程Java语言与应用 课程设计名称扫雷游戏 学生姓名胡远远 学号0604031005 专业班级07网络工程一班 指导教师许强张贯虹

2010年09月 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (2)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (4)扫雷胜利后,显示游戏胜利。 (5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。 1.2 需实现的主要功能 (1)用户点击笑脸实现复位操作。 调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。 文本框TF记录扫雷成功所花的时间 (3)在失败和胜利后跳出失败或胜利的文本框 JoptionPane 该类用来调出对话框并提示胜利 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

扫雷游戏程序设计课程设计报告

课 程 设 计 扫雷游戏程序设计 2013 年 11 月 5 日 设计题目 学 号专业班级 学生姓名 指导教师

合肥工业大学课程设计任务书

一. 设计任务 (1)鼠标左击排雷,右击插小旗,打问号; (2)方格里面的数字表示方格周围的雷数; (3)能够显示未标记雷数和游戏用时; (4)雷区上面的小脸可以变化,显示微笑,惊讶,痛苦,胜利。在任何情况下单击小脸可以重新开始游戏; (5)可进行游戏难度的设定:包括预定义的难度级别(雷区行数,列数和雷数),和自行定义雷区行数,列数和雷数的功能; (6)排行榜功能,扫雷成功时候,根据游戏用时更新排行榜。 二. 具体设计 (一)、设计思路 扫雷游戏是很经典也很有趣的一款游戏,这次的游戏程序设计要求设计出功能与原游戏相近的一款游戏,首先定义变量和类要画出游戏方格以及位图,设计游戏等级,等级越高方格越多雷数也越多;然后设置随机布雷以保证每次重新开始游戏都有不同的雷区地图;另外定义鼠标左击扫雷,左击标记周围埋雷情况,右击奇数次排雷偶数次取消上次排雷,以及扫雷第一次左击不能扫到雷。

(二)、设计表示: 1、鼠标左击排雷,右击插小旗,打问号; 2、方格里面的数字表示方格周围的雷数; 3、能够显示未标记雷数和游戏用时; 4、雷区上面的小脸可以变化,显示微笑,惊讶,痛苦,胜利。在任何情况下单击小脸可以重新开始游戏; 5、可进行游戏难度的设定:包括预定义的难度级别(雷区行数,列数和雷数); 6、任何时候开始游戏第一次点击不会扫到雷。 由于时间等原因未完成功能: 排行榜和自行定义雷区行数,列数和雷数功能。 (四)、详细设计 1、添加位图 前十二幅是在雷区的,后四幅是按钮。为了便于加载,必须各自保证其连续性。 分别表示游戏进行的状态、结果胜利或触雷。

java扫雷游戏课程设计报告

Java课程设计报告 姓名 号学 系院 级班 业专 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。. (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为

是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2 需实现的主要功能 (1)用户可以自定义级别并且可以任意输入雷数; (2)具有计时功能,即显示用户完成移动盘子所花费的时间; (3)用户可以选择是否有音效; (4)自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 2.2 雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成 图2-1 MineArea类的UML图

扫雷游戏设计_课程设计报告

《WINDOWS程序设计》 课程设计报告 题目:扫雷游戏设计 专业: 班级: 姓名: 指导教师: 成绩: 学院 二〇一六年十一月十五日

目录 1.设计目的及意义 (3) 2.游戏基本操作内容 (3) 2.1 游戏玩法 (3) 2.2 游戏的基本操作 (4) 2.3 扫雷的设计原理 (4) 2.4总体游戏过程分析 (5) 3.游戏设计过程 (6) 3.1基本设计类及流程图 (6) 3.2 设计过程 (7) 4.设计结果及分析 (24) 4.1结果 (24) 4.2问题: (25) 5.心得体会: (25) 6.参考文献 (26)

1.设计目的及意义 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows 操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用C-free编写了与它功能相仿的挖地雷游戏,寓学于乐。 即:设计一个功能与Windows中的挖雷游戏相同的小游戏。 1.培养学生综合运用所学知识独立完成课题的能力。 2.试学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核 2.游戏基本操作内容 2.1 游戏玩法: 游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器(位于右上角,记录游戏时间),确定大小的矩形雷区中随机布置一定数量的地雷(初级为9*9个方块10个雷,中级为16*16个方块40个雷,高级为16*30个方块99个雷,自定义级别可以自己设定雷区大小和雷数,但是雷区大小不能超过 24*30),玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。2.2 游戏的基本操作:

计算机技术基础(c语言)课程设计 简单的打字游戏

计算机技术基础(C程序) 课程设计报告 一.题目:简单打字游戏 二、选题背景: 在全球信息化高度发展的今天,计算机技术是现代人必须掌握的基本技术。而一手精湛的打字技术更是我们自动化人所必备的资本。本c语言程序的开发为广大计算机使用者提供了一个很好的平台。 三、设计思想: 本程序主要应用了e l s e…i f语句、g o t o语句等函数。建立打字练习的程序。通过使用积分的方式,给使用者以直观的视觉冲击。激励使用者的练习兴趣。

三、程序流程图:

四:程序清单 #include "conio.h" #include "stdlib.h" #include "graphics.h" main() {char a[36]; int i,j,x,key,t,score=0; int gd=DETECT,gr; initgraph(&gd,&gr,""); cleardevice(); for(i=0;i<10;i++) a[i]=48+i; for(i=10;i<36;i++) a[i]=55+i; a[i]=0; for(i=1;i<81;i++) { gotoxy(i,3); printf("%c",220); gotoxy(i,18); printf("%c",220); } gotoxy(5,1); printf("score:"); settextstyle(1,0,8); outtextxy(100,350,"TYPE GAME"); sleep(2); randomize(); for(;;) { gotoxy(12,1); printf(" "); gotoxy(12,1);

扫雷游戏-课程设计报告

J A V A课程设计题目:扫雷游戏 院(系)计算机信息工程学院 专业网络工程 班级 13级网络工程1班 学生姓名方琴刘莉虹程子卿薛中意 设计时间 2015年8月 指导教师万中英

提交日期 2015年10月8日 摘要 《扫雷》是一款大众类的益智小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。先任意点开少量的方格,没有爆炸时,会出现一个数字,这个数字代表的意思是以它为中心的9个格子内所有雷的个数。一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里插旗,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区,等打开所有非雷区,你就赢了。 采用GUI界面设计,窗口定位,绘图机制,鼠标监听等Java技术。用户可以自己选择地雷的数量,地雷随机分布在17*24的方块矩阵中,地雷数量越多,难度越大。鼠标放在方格上,单击鼠标左键开始游戏,按空格键插旗。如果插旗错误,或是点击到了地雷,则游戏失败。

1 引言 该设计的目的及意义 该设计的要求 相关技术 2 总体设计 功能设计 3 详细设计 系统界面设计 流程图 界面截图

程序描述 选择地雷数量 游戏界面 4 课程设计总结 遇到问题解决问题过程 系统存在的问题,进一步要做的工作 课程设计心得体会 5 附录(程序代码) 该设计的目的及意义

1.利用扫雷游戏巩固和Java语言程序设计这一课程的基本 知识的理解和掌握; 2.掌握Java语言程序设计中编程和程序调试的基本技能; 3.基本掌握完全面向对象程序设计的基本思路和方法; 4.利用Java语言程序设计学会基本的软件设计; 5.掌握书写程序设计说明文档的能力。 课程设计要求 1. 分析课程设计题目的思路及要求; 2. 编写程序代码,调试程序使其能正确运行; 3. 设计完成的软件要便于操作和使用,有整齐、美观的使用界面; 4. 能实现简单的扫雷游戏; 相关技术

C#打字游戏课程设计

C# 打字游戏程序核心代码主要部分: 设计程序流程图:

主窗体代码: using System; using System.Collections.Generic; using https://www.360docs.net/doc/439732934.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; //课程名称 C# 程序设计实践 //设计题目打字游戏 //专业计算机科学与技术 //班级 //学号 //姓名 //指导老师 namespace Typing_Game { public partial class FrmTyping : Form { public FrmTyping() { InitializeComponent();

public int right = 0; //正确个数计数 public int wrong = 0; //错误个数计数 public int sum = 0; //总个数技术 public int count = 0; //按键总次数 public float accuracy; //正确率 public int Minute = 1; //设置默认没局游戏时间 public int minute; //设置游戏中的倒计时分 public int second; //设置游戏中的倒计时秒 private void FrmTyping_Load(object sender, EventArgs e) { } //在状态栏中显示当前系统时间 private void timerSys_Tick(object sender, EventArgs e) { DateTime now = DateTime.Now; this.tsslSysTime.Text = "系统时间: " + now.Hour.ToString() + ":" + now.Minute.ToString() + ":" + now.Second.ToString()+'\t'; } //开始&结束按钮 private void tsmiStratOrOver_Click(object sender, EventArgs e) { if (tsmiStratOrOver.Text == "开始") { tsmiStratOrOver.Text = "结束"; timerWord.Start(); timerGame.Start(); timerGT.Start(); //在游戏开始时暂停&继续按钮可用 tsmiPauseOrContinue.Enabled = true; //在游戏未开始时选择游戏等级与设置游戏按钮无效 tsmiLevel.Enabled = false; tsmiOption.Enabled = false; //游戏开始初始化游戏数据 right = 0; wrong = 0;

相关文档
最新文档