C语言课设报告连续击键游戏Word格式.docx
- 文档编号:21278217
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:11
- 大小:52.28KB
C语言课设报告连续击键游戏Word格式.docx
《C语言课设报告连续击键游戏Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课设报告连续击键游戏Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
2、编写课程设计报告书:
2011年12月26日至2011年12月29日
3、提交报告及答辩时间:
2011年12月30日
专科
2011年12月26日至2011年12月28日
2011年12月29日
目录
一.课程设计目的:
2
二.课程设计原因2
三.课程设计思路以及方案3
1.基础思路3
2总体功能3
3.功能模块3
⑴宏定义(定义游戏级别)3
⑵外部变量声明3
⑶定义各模块函数4
四流程图4
五.主要功能说明手段5
六.未实现功能6
附录:
源代码8
熟练掌握条件语句、循环、数组、函数操作,将本课程所学的知识合理地运用于实践当中。
了解一些书上没有的函数及使用方法。
为以后的用C语言乃至其他设计语言解决实际问题打下了一个良好的基础。
二.课程设计原因
设计出类似于小时候在学习机上玩过的一种打字母和数字的简单小游戏,希望能重温一下自己小时候的游戏,以及能够用已经学到的关于c的知识进行编程,巩固一下学到的知识,并且学习一些在课堂上没有的函数或源文件。
三.课程设计思路以及方案
1.基础思路
.需要一个界面,能够选择关卡,起一个引导性的作用;
分四个模块进行,并定义每个模块的函数
voidInitGraphics();
voidInitGame();
voidPlayGame();
voidmain()。
然后调用函数;
设计随机出现的字母或数字,设计背景颜色,设计得分程序,设计界面布局等。
2总体功能
能够像小游戏里面的进行简单的选关卡,记得分,进入界面,推出界面。
3.功能模块
宏定义(定义游戏级别)
#defineGRADE180/*级别1的延时*/
#defineGRADE240/*级别2的延时*/
#defineGRADE320/*级别3的延时*/
#defineGRADE410/*级别4的延时*/
#defineWINSCORE5000/*成功游戏的分数*/
外部变量声明
charascKey[36];
intblosKey[36]={0xb30,0x231,0x332,0x433,0x534,0x635,0x736,0x837,0x938,0xa39,0x1e61,0x3062,
0x2e63,0x2064,0x1265,0x2166,0x2267,0x2368,0x246a,0x1769,0x256b,0x266c,0x326d,0x316e,
0x186f,0x1970,0x1071,0x1372,0x1f73,0x1474,0x1675,0x2f76,0x1177,0x2d78,0x1579,0x2c7a};
/*这些数字都是在bios中的键盘的编码*/
intdelayTime;
定义各模块函数
/*图形初始化*/voidInitGraphics()
/*初始化游戏*/voidInitGame()
/*开始游戏*/voidPlayGame()
/*主函数*/voidmain()
四流程图
五.主要功能说明手段
1.设置图形的初始化,利用voidInitGraphics()
{intgdriver=DETECT,gmode;
initgraph(&
gdriver,&
gmode,"
c:
\\tc"
);
};
2.通过利用for函数与坐标函数gotoxy(,),绘制出游戏界面的边框“********************”;
3.通过利用gotoxy函数,绘制出游戏界面中的文字和级别;
4.通过利用setbkcolor()函数描绘出游戏界面的背景颜色;
5.利用switch函数可以进行关卡的选择以至于部出现错误;
6.利用randomize()函数和i=rand()%80以及x=rand()%36进行对围墙所在位置中能够随机出现的数字和字母的的生成;
7.利用if(j==20)/*超时相当于没有真确按键*/
{score--;
continue;
}
key=bioskey(0);
/*接收键值*/
if(key==0x011b)/*如果是ESC则推出程序*/
break;
if(key==blosKey[x])/*命中则加分*/
{score++;
score--;
/*没有命中则减分*/
可以进行分数的加减,以便肯定最后的得分。
六.未实现功能
1.当击错键时以及击对键时的声音设置
上网查找的声音设置可以用sound(hz)函数来进行,但是在编程时声音发布出来,不知道是什么原因,如下:
if(key==blosKey[x])
Sound(27);
nosound();
delay(1000);
sound(30);
2.实现字母与数字的不同颜色的转换。
根据所找的资料,利用的是setcolor()函数,但是不知道如何运用这个函数。
七.课程设计中涉及的知识点
⑴循环语句:
for语句循环。
for语句是C语言中所提供的功能最强、使用最为灵活的一种循环语句。
特别适用与循环次数固定而循环条件不确定的情况。
for语句最主要的特点是:
特别适合已知循环次数的循环语句。
while语句
while语句可以实现当型循环,通常用于能够确定的循环次数的循环控制。
条件语句:
if语句。
if语句是C语言中的选择结构语句的主要形式,它根据if语句后面的条件表达式来决定执行过程。
⑵数组:
一维数组元素的应用、赋值和越界检查。
一维数组声明的一般形式为:
类型标识符
数组名
[常量表达式];
数组元素是组成数组的基本单元。
一维数组赋值的方法有:
用赋值语句对数组元素逐个赋值;
采用初始化赋值和动态赋值的方法。
为了不可避免不可预测的错误发生,在程序中最好还是加上数组越界检查程序代码,将数组越界的检查范围加在程序中,就可以确保程序执行的正确性。
因此,可以说数组的边界检验便是程序员的职责。
⑶函数:
1)、函数的定义。
函数定义的形式
1
传统的定义形式
[类型标识符]函数名([形参列表])
形参说明
{
声明部分
语句/*功能实现部分*/
[return表达式;
]
源代码
#include<
conio.h>
stdlib.h>
graphics.h>
/*定义游戏级别*/
#defineGRADE180/*级别1的延时*/
intblosKey[36]={0xb30,0x231,0x332,0x433,0x534,0x635,0x736,0x837,0x938,0xa39,0x1e61,0x3062,
intdelayTime;
/*图形初始化*/
voidInitGraphics()
{
intgdriver=DETECT,gmode;
/*初始化游戏*/
voidInitGame()
intgameGrade;
inti=15,m,l;
setbkcolor(GREEN);
cleandevice();
for(m=25;
m<
61;
m++)
{
gotoxy(m,8);
printf("
*"
gotoxy(m,20);
}
for(l=8;
l<
20;
l++)
gotoxy(25,l);
gotoxy(60,l);
gotoxy(27,10);
WELCOMETOTHEHITGAME\n"
gotoxy(30,13);
pleasechoosethegrade:
"
gotoxy(36,i++);
1:
grade1\n"
2:
grade2\n"
3:
grade3\n"
4:
grade4\n"
gameGrade=getch();
switch(gameGrade)
case'
1'
:
delayTime=30000000;
break;
2'
delayTime=20000000;
3'
delayTime=10000000;
4'
delayTime=5000000;
default:
delayTime=300000;
/*初始化ascKey数组*/
for(i=0;
i<
10;
i++)ascKey[i]=48+i;
for(i=10;
36;
i++)ascKey[i]=55+i;
ascKey[i]=0;
cleardevice();
/*游戏界面初始化*/
for(i=1;
81;
i++)
gotoxy(i,3);
_"
gotoxy(i,20);
gotoxy(30,2);
score:
voidPlayGame()
inti,j,x,key,score=0;
randomize();
while
(1)
gotoxy(40,2);
%d"
score);
i=rand()%80;
/*随机生成产生字符的位置*/
if(i==0)i=1;
x=rand()%36;
/*随机生成一个字符*/
for(j=4;
!
kbhit()&
&
j!
=20;
j++)
gotoxy(i,j);
%c"
ascKey[x]);
gotoxy(i,j);
delay(delayTime);
if(score==WINSCORE)/*游戏胜利*/
{
gotoxy(20,12);
YOUWIN"
delay(1000000);
exit
(1);
}
"
if(j==20)/*超时相当于没有真确按键*/
intmain()
InitGraphics();
InitGame();
PlayGame();
closegraph();
return0;
参考文献:
[1]王敬华,林萍,陈静.C语言程序设计教程[M].北京:
清华大学出版社,2005.10:
141~167
[2]谭浩强.C程序设计语言[M],.北京:
机械工业出版社,2003.4:
205-256
[3]李邦几胡金桂王敬华.最新C语言实用教程[M].北京:
化学工业出版社,1996.3:
35~4366~97132~148
[4]李军民.新编C语言程序设计教程(第二版)[M].西安:
西安电子科技大学出版社,2005.08:
68~93148~171
[5]李文兵.TurboC及其应用开发,.北京:
电子工业出版社1994.1
[6](美)TonyGaddis著,周靖译.C++图形与游戏编程基础.北京:
清华大学出版社,2010.9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告 连续 击键 游戏