C语言程序设计连连看Word文件下载.docx

上传人:b****5 文档编号:21206062 上传时间:2023-01-28 格式:DOCX 页数:15 大小:17.26KB
下载 相关 举报
C语言程序设计连连看Word文件下载.docx_第1页
第1页 / 共15页
C语言程序设计连连看Word文件下载.docx_第2页
第2页 / 共15页
C语言程序设计连连看Word文件下载.docx_第3页
第3页 / 共15页
C语言程序设计连连看Word文件下载.docx_第4页
第4页 / 共15页
C语言程序设计连连看Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言程序设计连连看Word文件下载.docx

《C语言程序设计连连看Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计连连看Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

C语言程序设计连连看Word文件下载.docx

离史上最卡哇依的游戏开始还有**"

<

i<

**秒哦!

!

}return0;

}

voidinit1();

voidprint1();

intexit1();

voidinit2();

voidprint2();

intexit2();

voidinit3();

voidprint3();

intexit3();

voidnear1(inta,intb,inta1,intb1);

charchessman[10][10];

voidmain()//主函数

{time_tstart,end,time;

start=clock();

mai();

intd;

****************************************************************"

**亲,请选择适合您智商的级别:

[1]低级[2]中级[3]登峰造极**"

研发小组:

QYQ"

请选择:

***-"

cin>

>

d;

-***"

pause"

switch(d)

{

case1:

init1();

break;

case2:

init2();

case3:

init3();

default:

cout<

你个逗比"

}

intop;

introw,line;

introw2,line2;

do

{if(d==1)

print1();

elseif(d==2)

print2();

elseif(d==3)

print3();

printf("

options:

\n"

\t1.select\n"

\t2.restart\n"

\t3.sort\n"

scanf("

%d"

&

op);

if(op==1)

不造亲第一个相中了谁呢:

%d%d"

line,&

row);

再给他找个伴儿吧,亲:

line2,&

row2);

if(chessman[line][row]!

=chessman[line2][row2])

有缘无分呐!

system("

elseif(line==line2&

&

row==row2)

有搞错哦,亲!

system("

elseif(line<

=line2)

near1(line,row,line2,row2);

else

near1(line2,row2,line,row);

if(op==2)

if(op==3)

{main();

}while(exit1(),exit2(),exit3());

\n\n\n\t\t哇呀!

你好厉害!

end=clock();

time=end-start;

//这里的时间是计算机内部时间

cout<

endl<

time:

time<

endl;

本次得分:

98分!

继续保持哦!

voidinit1()//4乘4矩阵

{

inti,j;

inta[4]={0};

srand(time(NULL));

for(i=1;

i<

4;

i++)

for(j=1;

j<

5;

j++)

chessman[i][j]=rand()%4+65;

if(chessman[i][j]==65)a[0]++;

if(chessman[i][j]==66)a[1]++;

if(chessman[i][j]==67)a[2]++;

if(chessman[i][j]==68)a[3]++;

for(i=0;

if(a[i]%2!

=0)

chessman[4][i+1]=i+65;

chessman[4][i+1]=69;

voidprint1()

\t1234\n"

\t\n\t"

for(j=0;

%4c"

chessman[i][j]);

if(j==4&

i!

=0&

=5)

printf("

\t%d"

i);

\n\n\n\n"

}

intexit1()

6;

if(chessman[i][j]!

return1;

return0;

voidinit2()//6乘6矩阵

inta[6]={0};

7;

chessman[i][j]=rand()%6+65;

if(chessman[i][j]==69)a[4]++;

if(chessman[i][j]==70)a[5]++;

chessman[6][i+1]=i+65;

chessman[6][i+1]=71;

voidprint2()

\t123456\n"

8;

if(j==6&

=7)

intexit2()

voidinit3()//8乘8矩阵

inta[8]={0};

9;

chessman[i][j]=rand()%8+65;

//棋盘内容为A到H

//记录A的个数

if(chessman[i][j]==71)a[6]++;

if(chessman[i][j]==72)a[7]++;

chessman[8][i+1]=i+65;

chessman[8][i+1]=73;

voidprint3()

\t12345678\n"

10;

if(j==9&

=9)

intexit3()

voidnear1(inta,intb,inta1,intb1)//三种路径

intarow[2];

intaline[2];

intbrow[2];

intbline[2];

intstart=0,end=0;

//临时两个点

inti,j,n;

//用于循环

2;

i++)//初始化数组

arow[i]=a;

brow[i]=a1;

aline[i]=b;

bline[i]=b1;

/////////////////////////////////////////(a,b)a列中有哪些列

for(i=a+1;

if(chessman[i][b]==0)

arow[1]=i;

//arow【1】A点a行向下向量

break;

for(i=a-1;

i>

i--)

if(chessman[i][b]==0)//arow【0】A点a行向上向量

arow[0]=i;

////////////////////////////////////////////(a1,b1)a行中有哪些列

for(i=a1+1;

if(chessman[i][b1]==0)//brow[1]B点a1行向下向量

brow[1]=i;

for(i=a1-1;

if(chessman[i][b1]==0)//brow[1]B点a1行向上向量

brow[0]=i;

//////////////////////////////////////(a,b)b行有哪些列

for(i=b+1;

if(chessman[a][i]==0)//aline[1]A点b列向右向量

aline[1]=i;

for(i=b-1;

if(chessman[a][i]==0)//aline[0]A点b列向左向量

aline[0]=i;

/////////////////////////////(a1,b1)中b1列中有哪些行

for(i=b1+1;

if(chessman[a1][i]==0)//bline[1]B点b1列向左向量

bline[1]=i;

for(i=b1-1;

if(chessman[a1][i]==0)//bline[1]B点b1列向右向量

bline[0]=i;

///////////////////////////////////////关键算法///////////////////////////////////

/**********************

情况一

(a,b)

(a1,b1)

*********************************

情况二

(a.b)

***********************************

/考虑上下向量

if(brow[0]>

=arow[0])//向上方向向量有共同的列向量

start=brow[0];

//取大的

start=arow[0];

if(brow[1]<

=arow[1])//向下的方向向量有共同的列向量

end=brow[1];

取小的

end=arow[1];

start<

=end;

start++)//列向量上共同sart到end

//b1要大于b,否则就交换

如果不交换将使下面的循环出错、//

if(b<

b1)

j=b;

//小的赋值到j

i=b1;

//大的赋值到i

j=b1;

i=b;

///这里节约一个变量

for(n=0;

i;

j++)//同一行上,从列j到i

if(chessman[start][j]==0)//同一行上,所有列都是0

n++;

if((n==b-b1)&

(n>

0))//因为b和b1大小不能确定,所以有两个if

chessman[a][b]=chessman[a1][b1]=0;

if((n==b1-b)&

0))

//考虑左右向量//

if(aline[0]>

=bline[0])//向左的向量有共同的列向量

start=aline[0];

start=bline[0];

if(aline[1]<

bline[1])

end=aline[1];

end=bline[1];

for(i=start;

for(j=a,n=0;

a1;

if(chessman[j][i]==0)//同一列上所有行都是0

if(n==a1-a&

n>

0)

//*************************************************************************

*同行或者同列(a,b)

或者

(a,b)(a1,b1)(a1,b1)

*******************************************************************************

if(a==a1)//同行

if((aline[1]>

=b1)||(aline[0]<

=b1))

if(b==b1)//同列

if(arow[1]>

=a1)

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

当前位置:首页 > 外语学习 > 法语学习

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

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