C语言程序设计连连看_第1页
C语言程序设计连连看_第2页
C语言程序设计连连看_第3页
C语言程序设计连连看_第4页
C语言程序设计连连看_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计连连看Preparedon24November2020YOIR.#include<>#include<>#include<>#include<>#include<iostream>usingnamespacestd;#include<ctime>intmai()//倒计时{for(inti=3;i>=0;i--){longt=time(NULL);for(;;){longn=time(NULL);if(n!=t)break;}system("cls");cout<<""<<endl;cout<<""<<endl;cout<<"离史上最卡哇依的游戏开始还有**"<<i<<"**秒哦!!!"<<endl;}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;cout<<""<<endl;cout<<""<<endl;cout<<""<<endl;<<endl;cout<<<<endl;cout<<"**亲,请选择适合您智商的级别:[1]低级[2]中级[3]登峰造极**"<<endl;<<endl;cout<<<<endl;cout<<""<<endl;cout<<""<<endl;cout<<”研发小组:QYQ”<<endl;cout<<”请选择:***-";cin>>d;cout<<"-***"<<endl;system("pause");switch(d){case1:init1();break;case2:init2();break;case3:init3();break;default:cout<<"你个逗比";}intop;introw,line;introw2,line2;do{if(d==1)print1();elseif(d==2)print2();elseif(d==3)print3();printf("options:\n");printf("\\n");printf("\\n");printf("\\n");scanf("%d",&op);if(op==1){Printf("不造亲第一个相中了谁呢:");scanf("%d%d",&line,&row);Printf("再给他找个伴儿吧,亲:”);scanf("%d%d",&line2,&row2);if(chessman[line][row]!=chessman[line2][row2]){PrintfC'有缘无分呐!∖n");system("pause");}elseif(line==line2&&row==row2){Printf("有搞错哦,亲!!!∖n");system("Pause");}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());system("Pause");Printf("\n\n\n\t\t哇呀!你好厉害!\n");end=clock();time=end-start;〃这里的时间是计算机内部时间cout<<endl<<"time:"<<time<<endl;system("Pause");cout<<"本次得分:98分!继续保持哦!"<<endl;system("Pause");}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;i<4;i++){if(a[i]%2!=0)chessman[4][i+1]=i+65;elsechessman[4][i+1]=69;}}voidprint1(){inti,j;system("cls");printf("\t1234\n");for(i=0;i<5;i++){printf("\t\n\t");for(j=0;j<5;j++){printf("%4c",chessman[i][j]);if(j==4&&i!=0&&i!=5)}}printf("\n\n\n\n");}intexit1(){inti,j;for(i=0;i<6;i++){for(j=0;j<6;j++)if(chessman[i][j]!=0)return1;}return0;}Voidinit2()//6乘6矩阵{inti,j;inta[6]={0};printf("\t%d",i);srand(time(NULL));for(i=1;i<6;i++)for(j=1;j<7;j++){chessman[i][j]=rand()%6+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]++;if(chessman[i][j]==69)a[4]++;if(chessman[i][j]==70)a[5]++;}for(i=0;i<6;i++){if(a[i]%2!=0)chessman[6][i+1]=i+65;elsechessman[6][i+1]=71;}}voidprint2(){inti,j;system("cls");printf("\t123456\n");for(i=0;i<8;i++){printf("\t\n\t");for(j=0;j<8;j++){printf("%4c",chessman[i][j]);if(j==6&&i!=0&&i!=7)printf("\t%d",i);}}printf("\n\n\n\n");}intexit2(){inti,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if(chessman[i][j]!=0)return1;}return0;}Voidinit3()//8乘8矩阵{inti,j;inta[8]={0};srand(time(NULL));for(i=1;i<8;i++)for(j=1;j<9;j++){CheSSman[i][j]=rand()%8+65;〃棋盘内容为A到Hif(chessman[i][j]==65)a[0]++;〃记录A的个数if(CheSSman[i][j]==66)a[1]++;if(CheSSman[i][j]==67)a[2]++;if(CheSSman[i][j]==68)a[3]++;if(CheSSman[i][j]==69)a[4]++;if(CheSSman[i][j]==70)a[5]++;if(CheSSman[i][j]==71)a[6]++;if(CheSSman[i][j]==72)a[7]++;}for(i=0;i<8;i++){if(a[i]%2!=0)CheSSman[8][i+1]=i+65;elSeCheSSman[8][i+1]=73;}}Voidprint3(){inti,j;SyStem("ClS");printf("\t\n");for(i=0;i<10;i++){printf("\t\n\t");for(j=0;j<10;j++){printf("%4C",CheSSman[i][j]);if(j==9&&i!=0&&i!=9)printf("\t%d",i);}}printf("\n\n\n\n");}intexit3(){inti,j;for(i=0;i<10;i++){for(j=0;j<10;j++)if(chessman[i][j]!=0)return1;}return0;}Voidnear1(inta,intb,inta1,intb1)∕∕m种路径{intarow[2];intaline[2];intbrow[2];intbline[2];intstart=0,end=0;//临时两个点inti,j,n;〃用于循环for(i=0;i<2;i++)//初始化数组{arow[i]=a;brow[i]=a1;aline[i]=b;bline[i]=b1;}/////////////////////////////////////////(a,b)a列中有哪些列for(i=a+1;i<10;i++){if(chessman[i][b]==0)arow[1]=i;//arow【1】A点a行向下向量elsebreak;}for(i=a-1;i>=0;i--){if(chessman[i][b]==0)//arow【0】A点a行向上向量arow[0]=i;elsebreak;}////////////////////////////////////////////(a1,b1)a行中有哪些列for(i=a1+1;i<10;i++){if(chessman[i][b1]==0)∕∕brow[1]B点al行向下向量brow[1]=i;elsebreak;}for(i=a1-1;i>=0;i--){if(chessman[i][b1]==0)∕∕brow[1]B点al行向上向量brow[0]=i;elsebreak;}〃〃//////////////////////////////////(a,b)b行有哪些列for(i=b+1;i<10;i++){if(chessman[a][i]==0)∕∕aline[1]A点b列向右向量aline[1]=i;elsebreak;}for(i=b-1;i>=0;i--){if(chessman[a][i]==0)∕∕aline[0]A点b列向左向量aline[0]=i;elsebreak;}////////////////〃〃/////////(a1,b1)中bl列中有哪些行for(i=b1+1;i<10;i++){if(chessman[a1][i]==0)∕∕bline[1]B点bl列向左向量bline[1]=i;elsebreak;}for(i=b1-1;i>=0;i--){if(chessman[a1][i]==0)∕∕bline[1]B点bl列向右向量bline[0]=i;elsebreak;}///////////////////////////////////////关键算法//////////////////////////////////// κt>力、力、力、力、力、情况一(a,b)(a1,b1)κt>情况二()(a1,b1)κt>***********************************/考虑上下向量if(brow[0]>=arow[0]y^上方向向量有共同的列向量Start=brow[0];〃取大的elseStart=arow[0];14及00[1]<=2100[1])〃向下的方向向量有共同的列向量end=brow[1];取小的elSeend=arow[1];for(;Start<=end;Start++)〃列向量上共同Sart到end{//bl要大于b,否则就交换如果不交换将使下面的循环出错、//if(b<b1){上="//小的赋值到ji=b1;//大的赋值到i}else{j=b1;i=b;}///这里节约一个变量for(n=0;j<i;j++)//同一行上,从列j到i{if(chessman[start][j]==0)//同一行上,所有列都是0n++;elsebreak;}if((n==b-b1)&&(n>0))//因为b和bl大小不能确定,所以有两个ifchessman[a][b]=chessman[a1][b1]=0;if((n==b1-b)&&(n>0))chessman[a][b]=chessman[a1][b1]=0;}//考虑左右向量//if(aline[0]>=bline[0])〃向左的向量有共同的列向量Start=aline[0];//取大的elseStart=bline[0];if(aline[1]<bline[1])end=aline[1];elSeend=bline[1];for(i=Start;i<=end;i+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论