0911090103于双江《泡泡龙游戏》Word文档格式.docx
- 文档编号:17193914
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:11
- 大小:146.19KB
0911090103于双江《泡泡龙游戏》Word文档格式.docx
《0911090103于双江《泡泡龙游戏》Word文档格式.docx》由会员分享,可在线阅读,更多相关《0911090103于双江《泡泡龙游戏》Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
VK_LEFT
0x4b00
/*控制方向的左键值*/
VK_RIGHT
0x4d00/*控制方向的右键值*/
VK_DOWN
0x5000/*控制方向的下键值*/
VK_UP
0x4800/*控制方向的上键值*/
VK_ESC
0x011b/*退出游戏*/
VK_SPACE
0x3920/*继续进行*/
TRUE
1/*正确*/
FALSE
0/*出现错误*/
2>
泡泡龙界面内部数据
public:
/*定义的全局变量*/
floatx,y;
/*确定发射泡泡的方位*/
intcolor;
/*输入泡泡的颜色*/
floatradius;
/*输入泡泡的半径大小*/
intsamecolor;
/*判断泡泡颜色是否相同*/
intclear_init;
/*颜色相同的泡泡就消失*/
intnotdrop;
/*泡泡没有碰到发射针就继续*/
intdrop_init;
/*颜色不相同的泡泡就累加*/
5.函数设计
文件中函数的功能图如下:
文件名
函数原形
函数功能
函数处理描述;
泡泡龙程序系统.C
void
initboard()
;
选择输入
输入在射击时的泡泡;
circle1(bub.x,bub.y,10);
循环输入
重复射击操作,泡泡循环射击;
printbub();
输出
使界面内的泡泡越来越多,射击出很多不同颜色的泡泡;
switch(key);
循环操作
循环控制方向键来确定射击的方向;
exit
(1);
退出
游戏失败,则退出;
clearboard();
输出弧线
利用for循环输出不同颜色的泡泡;
dropboard();
输出泡泡
利用for循环使相同颜色泡泡消失,不同颜色泡泡累加;
main();
程序的主函数
界面泡泡全部消失,成功进下一关,反之则失败退出。
四、关键技术、难点及其解决方法
此程序的关键是在游戏中,下面指针会循环的射击出不同颜色的小泡泡,而且使3个或3以上颜色相同的泡泡消失,不同颜色的累加,这些的各种表示方法……
五、测试方法
1.按键测试。
检查正确的输入时,是否界面正确表现;
错误输入时,是否无效。
2.程序运行测试。
正确运行,观察是否异常;
运行时中断,程序是否正确退出。
六、总结
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程,当今计算机应用在生活中可以说得是无处不在。
掌握程序开发技术是十分重要的,而C语言又是最常见,因此做好C语言课程设计是十分必要的。
自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
我做的是小游戏泡泡龙程序设计,虽然这程序不算很难,但对于我一个初学者来说,感觉很困难,也使第一次做课程设计,通过问同学,上网查资料,终于成功完成了此次课程设计。
通过这次实训,使我对C语言有了更进一步的了解,也使我认识到理论与实践的结合才是最有效的。
附1、使用说明
1、功能说明:
泡泡龙游戏的操作非常,程序中已经定义到了,控制方向的上、下、左、右键,和控制发射的空格键。
你只需要点开始进入游戏,就按照规则开是玩,通过你玩的会判断是进入下一关,还是失败退出。
2、用户手册:
泡泡龙是一个简单经典的智力小游戏,手机上网上玩的人都比较多,大多是小朋友玩的比较多,有助于智力的开发,当然成年人也可以玩。
附2、代码清单
此文件主要包含涉及文件读写功能的函数。
#include<
iostream.h>
graphics.h>
conio.h>
dos.h>
bios.h>
stdlib.h>
math.h>
/*上下左右键的值*/
0x4d00
0x5000
0x4800
0x011b
0x3920
1
0
PI
3.141593
sqrt2
1.41421
y1
17.32051
int
flag;
circle1(int
x,int
y,float
r)
{int
i;
for(i=1;
i<
r;
i++)
{circle(x,y,i);
}
return
0;
class
bubble{
public:
float
x,y;
color;
radius;
samecolor;
clear_init;
notdrop;
drop_init;
}board[114];
/*******************************************************************/
i,j,k;
for(i=0;
114;
{board[i].y=i/19*2*y1+10+(i%19)/10*y1;
if((i%19)/10==0)board[i].x=(i%19)*20+10;
if((i%19)/10==1)board[i].x=(i%19)%10*20+20;
board[i].samecolor=FALSE;
board[i].clear_init=FALSE;
board[i].notdrop=FALSE;
board[i].drop_init=FALSE;
startbub{
x2,y2;
v;
/*bubble运动的速度*/
angle;
moveangle;
startbub()
{x=100.0;
y=10.0+12*y1;
angle=PI/2.0;
moveangle=PI/2.0;
v=1.0;
MakeBubble();
ShowAngle();
MoveBubble();
ChangeAngle();
ClearBubble();
DropBubble();
}bub;
initbub()
{
bub.x=100;
bub.y=10+12*y1;
printboard()
/********************************************************/
{if(board[i].color!
=0)
{setcolor(board[i].color);
circle1(board[i].x,board[i].y,10);
setfillstyle(SOLID_FILL,board[i].color);
bar(board[i].x-sqrt2*4.4,board[i].y-sqrt2*4.4,board[i].x+sqrt2*4.4,board[i].y+sqrt2*4.4);
else
{setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
startbub:
:
MakeBubble()
/***************************************************************/
color=random(6)+1;
ShowAngle()
/****************************************************************/
setlinestyle(SOLID_LINE,10,10);
line(100.0,10+12*y1,x2,y2);
x2=100.0+30.0*cos(angle);
y2=10+12*y1-30.0*sin(angle);
setcolor(8);
setcolor(color);
circle1(100.0,10+12*y1,10);
printbub()
setcolor(bub.color);
bar(bub.x-sqrt2*5.0,bub.y-sqrt2*5.0,bub.x+sqrt2*5.0,bub.y+sqrt2*5.0);
bub.ShowAngle();
clearbub()
setcolor(BLACK);
MoveBubble()
i,j;
flag1;
flag=0;
min=30000.0;
*length;
/*board[i]到bub的距离的平方*/
while
(1)
clearbub();
{length[i]=(board[i].x-x)*(board[i].x-x)+(board[i].y-y)*(board[i].y-y);
if(length[i]<
400.0&
&
board[i].color!
=0){flag1=1;
break;
if(flag1==1)break;
if(x<
12){x=12;
moveangle=PI-moveangle;
if(x>
188){x=188;
if(y<
10)break;
x=x+2*cos(moveangle);
y=y-2*sin(moveangle);
{
min&
board[i].color==0){min=length[i];
flag=i;
board[flag].color=color;
x=100;
y=20*10*y1+10;
color=0;
ChangeAngle()
/************************************************************/
key;
flag_1=0;
bioskey
(1);
key=bioskey(0);
switch(key)
case
VK_RIGHT:
if(angle>
PI/36.0)angle=angle-PI/72.0;
moveangle=angle;
VK_LEFT:
if(angle<
PI-PI/36.0)angle=angle+PI/72.0;
VK_SPACE:
flag_1=1;
VK_ESC:
flag_1;
ClearBubble()
/*******************************************************/
{return
DropBubble()
clearboard()
quit=FALSE;
sum=0;
color=board[flag].color;
m,n;
board[flag].samecolor=TRUE;
for(;
)
{
if(board[i].color==color&
board[i].samecolor==TRUE&
board[i].clear_init==FALSE)
if(i==113){quit=TRUE;
if(quit==TRUE)break;
for(j=0;
j<
j++)
m=board[j].x-board[i].x;
n=board[j].y-board[i].y;
if(m*m+n*n<
450.0&
board[j].color==color)
{board[j].samecolor=TRUE;
board[i].clear_init=TRUE;
if(board[i].samecolor==TRUE)
{sum++;
if(sum>
=3)
board[i].color=0;
}
dropboard()/*************************************************************/
{board[i].notdrop=FALSE;
10;
if(board[i].color!
=0)board[i].notdrop=TRUE;
{if(board[i].notdrop==TRUE&
board[i].drop_init==FALSE)break;
if(board[i].notdrop==TRUE&
board[i].drop_init==FALSE)
m=board[i].x-board[j].x;
n=board[i].y-board[j].y;
board[j].color!
{board[j].notdrop=TRUE;
board[i].drop_init=TRUE;
{if(board[i].notdrop==FALSE)
main()
gdriver=DETECT,gmode;
initgraph(&
gdriver,&
gmode,"
g:
\\bc31\\bgi"
);
randomize();
initboard();
{bub.MakeBubble();
printboard();
bub.ChangeAngle()==0;
){bub.ShowAngle();
initbub();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 泡泡龙游戏 0911090103 泡泡 龙游