C++Builder编写的配对记忆游戏论文Word格式.docx
- 文档编号:16160175
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:13
- 大小:572.07KB
C++Builder编写的配对记忆游戏论文Word格式.docx
《C++Builder编写的配对记忆游戏论文Word格式.docx》由会员分享,可在线阅读,更多相关《C++Builder编写的配对记忆游戏论文Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
五、程序运行后的各个界面12
总结16
参考文献17
一、需求分析
休闲之时大家最喜欢玩一些小游戏,而记忆游戏不仅可以休闲娱乐,而且可以锻炼记忆能力。
1.基本功能描述
本课程的游戏规则是每次程序会产生6个题目,首先登陆用户,就可以进入游戏界面。
游戏中每个题目中会随即出现6对共12张图片,开始游戏时,图片会逐一显示后覆盖,操作者必须记住每一张图形的位置,所有图片显示一次之后,可以开始作答。
操作者移动鼠标指针单击图片,就可以翻开图片,当然,操作者必须连续翻开两张相同的图片,否则两张图片会再覆盖起来,当操作者将所有图片翻开,就表示已经完成这一题的操作,接着单击start按钮会显示新的题目,每个题目都会显示已经按键的次数,按键次数越少,代表记忆能力越强。
此外,还可以进行用户注册以及修改密码。
二、概要设计
1.设计步骤
(1).首先设计窗体,一共四个窗体:
用户登陆界面、用户注册界面、修改密码界面、游戏开始界面,在每个窗体上添加相应控件,在游戏开始窗体添加:
两个TImage控件,三个TLabel控件等等。
(2).然后选择Events标签,在OnActivate属性值栏中双击,淡出Unit1.cpp窗口后,输入相关代码,然后重复第1步第2步,设置Image2控件的事件程序,输入相关子程序代码,再打开Unit1.h窗口,在Private区输入事件程序名称程序代码。
(3).最后运行测试程序
三、界面设计
本课程一共四个窗体界面
1.用户登录界面
用户登录界面需要添加两个TLabel控件,两个TEdit控件,四个TButton控件以及一个SQL控件,主要实现用户登录进入游戏界面,进入用户注册界面以及修改密码界面的功能
2.用户注册界面
需要三个TLabel控件,三个DBEdit控件,相应的ADO组件以及一个SQL控件
由于本游戏需要注册才能进入游戏界面开始游戏,所以该界面主要实现用户注册功能
3.修改密码界面
主要实现密码修改功能
4.游戏开始界面
主要需要三个TLabel控件,两个TImage控件,实现开始游戏的功能
四、部分游戏主要代码
#include<
stdio.h>
dos.h>
math.h>
jpeg.hpp>
TImage*piclist[23];
TImage*img[12];
TImage*cmd[2];
TLabel*feedback;
intitemlist[12],itemflag[12],p_no[2];
inttt=22;
intgame_status;
intp_times,p_clicks;
voidloadpictures();
voidgene_items();
voidget_item();
voidwaiting(int);
void__fastcallTForm1:
:
FormActivate(TObject*Sender)
{
inti;
loadpictures();
for(i=0;
i<
12;
i++)
{
img[i]=newTImage(this);
img[i]->
Parent=this;
Visible=true;
AutoSize=true;
Tag=i;
Left=37+(i%4)*100;
Top=65+(int)(i/4)*100;
Picture=piclist[0]->
Picture;
OnClick=imgClick;
};
cmd[0]=newTImage(this);
cmd[0]->
Picture->
LoadFromFile("
图片\\start.jpg"
);
cmd[1]=newTImage(this);
cmd[1]->
图片\\stop.jpg"
randomize();
feedback=Label3;
feedback->
Visible=false;
game_status=0;
}
//---------------------------------------------------------------------------
Image2Click(TObject*Sender)
switch(game_status)
case0:
feedback->
p_times=0;
p_clicks=0;
Label2->
Caption=p_clicks;
get_item();
game_status=1;
Image2->
Picture=cmd[1]->
break;
case1:
Picture=cmd[0]->
Caption="
Stop!
"
;
game_status=0;
}
//加载图形文件数据
voidloadpictures()
char*picname[]={"
card"
"
p01"
p02"
p03"
p04"
p05"
p06"
p07"
p08"
p09"
p10"
p11"
p12"
p13"
p14"
p15"
p16"
p17"
p18"
p19"
p20"
p21"
p22"
};
Stringstr1,str2;
str1="
图片\\"
23;
str2=str1;
str2=str2+picname[i];
str2=str2+"
.jpg"
piclist[i]=newTImage(Form1);
piclist[i]->
LoadFromFile(str2);
//随即排列串行数据
voidrandom_list(int*xlist,intsize)
inti,j,x;
for(inti=0;
size;
j=random(size);
x=xlist[i];
xlist[i]=xlist[j];
xlist[j]=x;
//逐一翻开卡片后,再将卡片盖起来
voidopen_close()
{img[i]->
Picture=piclist[itemlist[i]]->
Form1->
Update();
waiting
(1);
img[i]->
Picture=piclist[0]->
game_status=1;
//显示新的题目
voidget_item()
intdlist[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
//随机排列dlist
tt;
j=random(tt-1);
x=dlist[i];
dlist[i]=dlist[j];
dlist[j]=x;
//取得dlist
6;
i++){
itemlist[i*2]=dlist[i];
itemlist[i*2+1]=dlist[i];
//随机排列itemlist
random_list(itemlist,12);
//将卡片盖起来
i++){
itemflag[i]=0;
open_close();
//等待事件的子程序
voidwaiting(intsec)
intx,y;
structtimet;
gettime(&
t);
x=t.ti_sec;
y=x;
while(abs(y-x)<
=sec)
{
gettime(&
y=t.ti_sec;
}
//按下卡片的事件程序
imgClick(TObject*Sender)
TImage*obj=(TImage*)Sender;
boolflag;
intindex,i;
index=obj->
Tag;
if(game_status==1&
&
itemflag[index]==0&
p_times<
2)
{
p_clicks=p_clicks+1;
Label2->
Caption=p_clicks+1;
itemflag[index]=1;
//翻开卡片
img[index]->
Picture=piclist[itemlist[index]]->
Form1->
p_no[p_times]=index;
p_times=p_times+1;
//判断是否已经连续翻开两张卡片
if(p_times==2)
if(itemlist[p_no[0]]!
=itemlist[p_no[1]])
waiting
(1);
img[p_no[0]]->
itemflag[p_no[0]]=0;
img[p_no[1]]->
Picture=piclist[0]->
itemflag[p_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Builder 编写 配对 记忆 游戏 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)