連連看C語(yǔ)言代碼_第1頁(yè)
連連看C語(yǔ)言代碼_第2頁(yè)
連連看C語(yǔ)言代碼_第3頁(yè)
連連看C語(yǔ)言代碼_第4頁(yè)
連連看C語(yǔ)言代碼_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、*功能:連連看*制作人:蔣睿立*時(shí)間:2007年8月1日*編譯環(huán)境: vc+ 6.0*程序語(yǔ)言: c語(yǔ)言*/#include #include #include #include void initialize(); /初始化void near1(int a,int b,int a1,int b1); /算法void print_chess(); /打印棋盤int exit_chess(); /判斷是否結(jié)束/全局變量char chessman1010; /編譯系統(tǒng)初始化每個(gè)元素為0void main() int row,line; /row是行號(hào),line是列號(hào) int row2,line2;

2、 /row是行號(hào),line是列號(hào) printf(ttt按任意鍵開(kāi)始n); fflush(stdin); getch(); initialize(); /初始化棋盤內(nèi)容 do print_chess(); printf(輸入第一個(gè):); fflush(stdin); scanf(%d.%d,&line,&row); printf(輸入第二個(gè):); fflush(stdin); scanf(%d.%d,&line2,&row2); if(chessmanlinerow!=chessmanline2row2) printf(兩數(shù)不相同!n); /兩數(shù)不同 else if(line=line2&row

3、=row2) printf(錯(cuò)誤輸入!n); /輸入相同的坐標(biāo),提示用戶錯(cuò)誤 else if(line=line2) near1(line,row,line2,row2); /使用函數(shù)處理,第一個(gè)點(diǎn)一定在第二個(gè)點(diǎn)上方 else near1(line2,row2,line,row); /使用函數(shù)處理 system(pause); while(exit_chess(); system(pause);printf(nnntt恭喜您,您勝利了!n);printf(ntt制作人:蔣睿立n);printf(nt博客:http:);void initialize() /初始化棋盤 int i,j; /用于循

4、環(huán)計(jì)數(shù) int a8=0; /記錄哪些字符出現(xiàn)次數(shù)不是偶數(shù) srand(time(null); for(i=1;i8;i+) /這里只隨機(jī)前8行,留最后一行不打印 for(j=1;j9;j+) chessmanij=rand()%8+65; /棋盤內(nèi)容為大寫字母a到h if(chessmanij=65) a0+; /記錄a的個(gè)數(shù) if(chessmanij=66) a1+; /記錄b的個(gè)數(shù) if(chessmanij=67) a2+; /記錄c的個(gè)數(shù) if(chessmanij=68) a3+; /記錄d的個(gè)數(shù) if(chessmanij=69) a4+; /記錄e的個(gè)數(shù) if(chessma

5、nij=70) a5+; /記錄f的個(gè)數(shù) if(chessmanij=71) a6+; /記錄g的個(gè)數(shù) if(chessmanij=72) a7+; /記錄h的個(gè)數(shù) for(i=0;i8;i+) if(ai%2!=0) /如果字符的個(gè)數(shù)是奇數(shù)就還需要打印一個(gè) chessman8i+1=i+65; else /如果前面7行隨機(jī)的a到h字符恰好是偶數(shù),最后一行全是i字符 chessman8i+1=73; void print_chess() /打印棋盤內(nèi)容 int i,j; system(cls); printf(t 1 2 3 4 5 6 7 8 n); for(i=0;i10;i+) prin

6、tf(tnt); for(j=0;j10;j+) printf(%4c,chessmanij); if(j=9&i!=0&i!=9) printf(t%d,i); printf(nnnn);int exit_chess() /判斷是否滿足退出 int i,j; for(i=0;i10;i+) for(j=0;j10;j+) if(chessmanij!=0) return 1; /只要有1個(gè)棋子不為0,就返回1 return 0;void near1(int a,int b,int a1,int b1) int arow2; int aline2; int brow2; int bline2;

7、 int start=0,end=0; /臨時(shí)兩個(gè)點(diǎn) int i,j,n; /用于循環(huán) for(i=0;i2;i+) /初始化數(shù)組 arowi=a; browi=a1; alinei=b; blinei=b1; /(a,b) a行中有哪些列 for(i=a+1;i=0;i-) if(chessmanib=0) /arow0是a點(diǎn)a行向上向量 arow0=i; else break; /(a1,b1) a1行中有哪些列 for(i=a1+1;i=0;i-) if(chessmanib1=0) /brow0是b點(diǎn)a1行向上向量 brow0=i; else break; /(a,b) b列中有哪些行

8、 for(i=b+1;i=0;i-) if(chessmanai=0) /aline0是a點(diǎn)b列向左向量 aline0=i; else break; /(a1,b1) b1列中有哪些行 for(i=b1+1;i=0;i-) if(chessmana1i=0) /bline0是b點(diǎn)b1列向左向量 bline0=i; else break; /關(guān)鍵算法/ /* 情況一 (a,b) (a1,b1) */ /* 情況二 (a,b) (a1,b1) */ /*考慮上下向量*/ if(brow0=arow0) /向上方向向量 有共同的列向量 start=brow0; /取大的 else start=aro

9、w0; if(brow1=arow1) /向下方向向量 有共同的列向量 end=brow1; /取小的 else end=arow1; for(;start=end;start+) /列向量上共同點(diǎn)start到end /* b1要大于b,否則就交換如果不交換將使下面的循環(huán)出錯(cuò)*/if(bb1)j=b; /小的數(shù)賦到j(luò)中i=b1; /大的數(shù)賦到i中elsej=b1;i=b; /*這里節(jié)約一個(gè)變量,所有看起來(lái)有點(diǎn)復(fù)雜*/ for(n=0;j0) /因?yàn)閎與b1大小不能確定,所有有2個(gè)if chessmanab=chessmana1b1=0; if(n=b1-b)&(n0) chessmanab=chessmana1b1=0; /*考慮左右向量*/ if(aline0=bline0) /向左的向量 有共同的行向量 start=aline0; /取大的 else start=bline0; if(aline1bline1) /向右的向量 有共同的行向量 end=aline1; /取小的 else end=bline1; for(i=start;i=end;i+) for(j=a,n=0;j0) /a1始終大

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論