五子连珠报告Word文档下载推荐.docx

上传人:b****7 文档编号:22482412 上传时间:2023-02-04 格式:DOCX 页数:44 大小:78.47KB
下载 相关 举报
五子连珠报告Word文档下载推荐.docx_第1页
第1页 / 共44页
五子连珠报告Word文档下载推荐.docx_第2页
第2页 / 共44页
五子连珠报告Word文档下载推荐.docx_第3页
第3页 / 共44页
五子连珠报告Word文档下载推荐.docx_第4页
第4页 / 共44页
五子连珠报告Word文档下载推荐.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

五子连珠报告Word文档下载推荐.docx

《五子连珠报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《五子连珠报告Word文档下载推荐.docx(44页珍藏版)》请在冰豆网上搜索。

五子连珠报告Word文档下载推荐.docx

用户选中一个小球后单击空白位置,可以把选中的小球移动到该位置。

1.1.3游戏开始阶段,点击“开始”开始游戏。

1.1.4规则:

球移动时,只有同色球五个相邻并组成一条直线(横向、竖向、斜向)的小球才可以消除并得分。

1.1.5每次移动球后,每消去1球,得1分。

1.1.6用户移动小球后,若消除小球,则系统自动生成与消除小球数量相同颜色相同的小球。

1.2界面需求

1.2.1游戏开始时直接显示初始界面,玩家点击开始后开始游戏。

1.2.2开始后,游戏随机生成三色棋子。

1.2.3游戏界面包括:

3种色小球、网格、当前得分、开始退出按钮。

1.3开发与运行环境需求

开发环境为MicrosoftVisualC++,操作系统windows98以上皆可。

2概要设计

2.1主要数据结构:

2.1.1结构体:

StructMOUSEMSG{

UINTuMsg;

boolmkCtrl;

boolmkshift;

boolmkLButton;

boolmkMButton;

boolmkRButton;

intx;

inty;

intscore;

}

2.1.2数组:

str[15][15]

2.2程序总体结构:

2.2.2初始界面:

定义视口,画出表格;

2.2.3出球模块:

游戏开始阶段系统随机产生三种颜色的球和以后每次随机的五个球;

2.2.4鼠标相应模块:

判断所控制的球与退出等操作;

(该函数中已经包括了对于竖排、横排、斜排消去小球的判断以及对分数的累加)

3详细设计

#include<

stdio.h>

//函数头

windows.h>

time.h>

conio.h>

graphics.h>

#defineNUM110

#defineNUM210

intmain()//主函数

{

intc1=0;

//定义参量

inta,b,c,e,f;

intc2=0;

intp=0;

intq=1;

intr=2;

inti,j,o,d,w=0,t=0,z=0,v=0,s=0,u=0,x1=0,x2=0;

intcol;

intstr[20][20]={0};

chars1[100];

intscore=0;

initgraph(900,600);

outtext("

Welcome"

);

HRGNrgn=CreateRectRgn(60,60,511,511);

//定义视口

setcliprgn(rgn);

for(i=2;

i<

20;

i++)//生成棋盘

{

for(j=2;

j<

j++)

{

c1=i*30;

c2=j*30;

line(0,c1,700,c1);

line(c2,0,c2,600);

}

}

setcliprgn(NULL);

line(600,0,600,600);

line(600,200,1024,200);

line(600,400,1024,400);

outtextxy(610,10,"

NowScore"

outtextxy(610,210,"

Patten"

rectangle(700,250,820,280);

outtextxy(745,258,"

开a始º

?

"

rectangle(700,330,820,360);

outtextxy(745,340,"

退ª

出?

rectangle(700,90,820,120);

MOUSEMSGm=GetMouseMsg();

//鼠标响应

while(true)//永真函数

if(MouseHit())

m=GetMouseMsg();

switch(m.uMsg)

caseWM_LBUTTONDOWN:

if(m.x>

=700&

&

m.x<

=820&

m.y>

=330&

m.y<

=360)//退出按钮

return0;

if(m.x>

=250&

=280)//开始按钮

{

srand((unsigned)time(0));

for(i=0;

4;

i++)//随机生成棋子

for(j=0;

{

a=rand()%15;

b=rand()%15;

str[a][b]=1;

c=rand()%15;

d=rand()%15;

str[c][d]=2;

e=rand()%15;

f=rand()%15;

str[e][f]=3;

setcolor(WHITE);

setfillstyle(RED);

circle(75+a*30,75+b*30,13);

floodfill(75+a*30,75+b*30,WHITE);

setfillstyle(BLUE);

circle(75+c*30,75+d*30,13);

floodfill(75+c*30,75+d*30,WHITE);

setfillstyle(GREEN);

circle(75+e*30,75+f*30,13);

floodfill(75+e*30,75+f*30,WHITE);

}

sprintf(s1,"

%d"

score);

outtextxy(750,100,s1);

for(i=0;

i++)//移动棋子

for(j=0;

if(m.x>

=60+30*i&

=90+30*i&

=60+30*j&

=90+30*j)

if(str[i][j]!

=0)

col=str[i][j];

o=i;

p=j;

if(str[i][j]==0)

switch(col)

case1:

circle(75+i*30,75+j*30,13);

floodfill(75+i*30,75+j*30,WHITE);

setfillstyle(BLACK);

bar(61+30*o,61+30*p,89+30*o,89+30*p);

col=0;

str[i][j]=1;

str[o][p]=0;

break;

case2:

setcolor(WHITE);

str[i][j]=2;

break;

case3:

str[i][j]=3;

}

intk=0,t=0,w=0,a,b;

//消去棋子

for(t=0;

t<

16;

t++)

for(w=0;

w<

15;

w++)

if(str[w][t]==str[w][t+1]&

str[w][t+1]==str[w][t+2]&

str[w][t+2]==str[w][t+3]&

str[w][t+3]==str[w][t+4]&

str[w][t+4]!

setfillstyle(BLACK);

bar(61+30*w,61+30*t,89+30*w,89+30*t);

bar(61+30*w,61+30*(t+1),89+30*w,89+30*(t+1));

bar(61+30*w,61+30*(t+2),89+30*w,89+30*(t+2));

bar(61+30*w,61+30*(t+3),89+30*w,89+30*(t+3));

bar(61+30*w,61+30*(t+4),89+30*w,89+30*(t+4));

if(str[w][t]==1)//判断消去颜色

while(k<

5)//消去后生成棋子

if(str[a][b]==0)

{

setfillstyle(RED);

circle(75+a*30,75+b*30,13);

floodfill(75+a*30,75+b*30,WHITE);

str[a][b]=1;

k=k+1;

score=score+1;

sprintf(s1,"

outtextxy(750,100,s1);

if(str[w][t]==2)

5)

setfillstyle(BLUE);

str[a][b]=2;

if(str[w][t]==3)

setfillstyle(GREEN);

str[a][b]=3;

str[w][t]=0;

str[w][t+1]=0;

str[w][t+2]=0;

str[w][t+3]=0;

str[w][t+4]=0;

intz=0,v=0;

for(z=0;

z<

14;

z++)

for(v=0;

v<

v++)

if(str[z][v]==str[z+1][v]&

str[z+1][v]==str[z+2][v]&

str[z+2][v]==str[z+3][v]&

str[z+3][v]==str[z+4][v]&

str[z+4][v]!

bar(61+30*z,61+30*v,89+30*z,89+30*v);

bar(61+30*(z+1),61+30*v,89+30*(z+1),89+30*v);

bar(61+30*(z+2),61+30*v,89+30*(z+2),89+30*v);

bar(61+30*(z+3),61+30*v,89+30*(z+3),89+30*v);

bar(61+30*(z+4),61+30*v,89+30*(z+4),89+30*v);

if(str[z][v]==1)

if(str[z][v]==2)

if(str[z][v]==3)

str[z][v]=0;

str[z+1][v]=0;

str[z+2][v]=0;

str[z+3][v]=0;

str[z+4][v]=0;

}

ints=0,y=0;

for(s=0;

s<

s++)

for(u=0;

u<

u++)

if(str[s][u]==str[s+1][u-1]&

str[s+1][u-1]==str[s+2][u-2]&

str[s+2][u-2]==str[s+3][u-3]&

str[s+3][u-3]==str[s+4][u-4]&

str[s+4][u-4]!

bar(61+30*s,61+30*u,89+30*s,89+30*u);

bar(61+30*(s+1),61+30*(u-1),89+30*(s+1),89+30*(u-1));

bar(61+30*(s+2),61+30*(u-2),89+30*(s+2),89+30*(u-2));

bar(61+30*(s+3),61+30*(u-3),89+30*(s+3),89+30*(u-3));

bar(61+30*(s+4),61+30*(u-4),89+30*(s+4),89+30*(u-4));

if(str[s][u]==1)

if(str[s][u]==2)

if(str[s][u]==3)

str[s][u]=0;

str[s+1][u-1]=0;

str[s+2][u-2]=0;

str[s+3][u-3]=0;

str[s+4][u-4]=0;

intx1=0,x2=0;

for(x1=0;

x1<

x1++)

for(x2=0;

x2<

x2++)

if(str[x1][x2]==str[x1+1][x2+1]&

str[x1+1][x2+1]==str[x1+2][x2+2]&

str[x1+2][x2+2]==str[x1+3][x2+3]&

str[x1+3][x2+3]==str[x1+4][x2+4]&

str[x1+4][x2+4]!

bar(61+30*x1,61+30*x2,89+30*x1,89+30*x2);

bar(61+30*(x1+1),61+30*(x2+1),89+30*(x1+1),89+30*(x2+1));

bar(61+30*(x1+2),61+30*(x2+2),89+30*(x1+2),89+30*(x2+2));

bar(6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1