C語言程序設(shè)計(jì)連連看_第1頁
C語言程序設(shè)計(jì)連連看_第2頁
C語言程序設(shè)計(jì)連連看_第3頁
C語言程序設(shè)計(jì)連連看_第4頁
C語言程序設(shè)計(jì)連連看_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語言程序設(shè)計(jì)連連看C語言程序設(shè)計(jì)連連看C語言程序設(shè)計(jì)連連看資料僅供參考文件編號(hào):2022年4月C語言程序設(shè)計(jì)連連看版本號(hào):A修改號(hào):1頁次:1.0審核:批準(zhǔn):發(fā)布日期:#include<>#include<>#include<>#include<>#include<iostream>usingnamespacestd;#include<ctime>intmai()//倒計(jì)時(shí){ 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()//主函數(shù){time_tstart,end,time;start=clock(); mai(); intd; cout<<""<<endl; cout<<""<<endl; cout<<""<<endl; cout<<"****************************************************************"<<endl;cout<<"****************************************************************"<<endl;cout<<"**親,請(qǐng)選擇適合您智商的級(jí)別:[1]低級(jí)[2]中級(jí)[3]登峰造極**"<<endl; cout<<"****************************************************************"<<endl;cout<<"****************************************************************"<<endl; cout<<""<<endl; cout<<""<<endl; cout<<"研發(fā)小組:QYQ"<<endl;cout<<"請(qǐng)選擇:***-"; cin>>d; cout<<"-***"<<endl; system("pause"); switch(d) { case1:init1();break; case2:init2();break;case3:init3();break; default:cout<<"你個(gè)逗比"; } 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("不造親第一個(gè)相中了誰呢:");scanf("%d%d",&line,&row);printf("再給他找個(gè)伴兒吧,親:");scanf("%d%d",&line2,&row2);if(chessman[line][row]!=chessman[line2][row2]){printf("有緣無分吶!\n"); system("pause");}elseif(line==line2&&row==row2){printf("有搞錯(cuò)哦,親!!!\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;//這里的時(shí)間是計(jì)算機(jī)內(nèi)部時(shí)間cout<<endl<<"time:"<<time<<endl; system("pause");cout<<"本次得分:98分!繼續(xù)保持哦!"<<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("\t%d",i); }}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};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;//棋盤內(nèi)容為A到Hif(chessman[i][j]==65)a[0]++;//記錄A的個(gè)數(shù)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("\t12345678\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)//三種路徑{intarow[2];intaline[2];intbrow[2];intbline[2];intstart=0,end=0;//臨時(shí)兩個(gè)點(diǎn)inti,j,n;//用于循環(huán)for(i=0;i<2;i++)//初始化數(shù)組{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點(diǎn)a行向下向量elsebreak;}for(i=a-1;i>=0;i--){if(chessman[i][b]==0)//arow【0】A點(diǎn)a行向上向量arow[0]=i;elsebreak;}////////////////////////////////////////////(a1,b1)a行中有哪些列for(i=a1+1;i<10;i++){if(chessman[i][b1]==0)//brow[1]B點(diǎn)a1行向下向量brow[1]=i;elsebreak;}for(i=a1-1;i>=0;i--){if(chessman[i][b1]==0)//brow[1]B點(diǎn)a1行向上向量brow[0]=i;elsebreak;}//////////////////////////////////////(a,b)b行有哪些列for(i=b+1;i<10;i++){if(chessman[a][i]==0)//aline[1]A點(diǎn)b列向右向量aline[1]=i;elsebreak;}for(i=b-1;i>=0;i--){if(chessman[a][i]==0)//aline[0]A點(diǎn)b列向左向量aline[0]=i;elsebreak;}/////////////////////////////(a1,b1)中b1列中有哪些行for(i=b1+1;i<10;i++){if(chessman[a1][i]==0)//bline[1]B點(diǎn)b1列向左向量bline[1]=i;elsebreak;}for(i=b1-1;i>=0;i--){if(chessman[a1][i]==0)//bline[1]B點(diǎn)b1列向右向量bline[0]=i;elsebreak;}///////////////////////////////////////關(guān)鍵算法////////////////////////////////////**********************情況一(a,b)(a1,b1)*********************************情況二()(a1,b1)***********************************/考慮上下向量if(brow[0]>=arow[0])//向上方向向量有共同的列向量start=brow[0];//取大的elsestart=arow[0];if(brow[1]<=arow[1])//向下的方向向量有共同的列向量end=brow[1];取小的elseend=arow[1];for(;start<=end;start++)//列向量上共同sart到end{//b1要大于b,否則就交換如果不交換將使下面的循環(huán)出錯(cuò)、//if(b<b1){j=b;//小的賦值到j(luò)i=b1;//大的賦值到i}else{j=b1;i=b;}///這里節(jié)約一個(gè)變量for(n=0;j<i;j++)//同一行上,從列j到i{if(chessman[start][j]==0)//同一行上,所有列都是0n++;elsebreak;}if((n==b-b1)&&(n>0))//因?yàn)閎和b1大小不能確定,所以有兩個(gè)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];//取大的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論