黑白棋C語言源程序_第1頁
黑白棋C語言源程序_第2頁
黑白棋C語言源程序_第3頁
黑白棋C語言源程序_第4頁
黑白棋C語言源程序_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z黑白棋C語言程序編輯#includegraphics.h/*圖形系統(tǒng)頭文件*/#defineLEFT0*4b00/*光標(biāo)左鍵值*/#defineRIGHT0*4d00/*光標(biāo)右鍵值*/#defineDOWN0*5000/*光標(biāo)下鍵值*/#defineUP0*4800/*光標(biāo)上鍵值*/#defineESC0*011b/*ESC鍵值*/#defineENTER0*1c0d/*回車鍵值*/inta88=0,key,score1,score2;/*具體分?jǐn)?shù)以及按鍵與存放棋子的變量*/charplayone3,playtwo3;/*兩個人的得分轉(zhuǎn)換成字符串輸出*/voidplaytoplay(v

2、oid);/*人人對戰(zhàn)函數(shù)*/voidDrawQp(void);/*畫棋盤函數(shù)*/voidSetPlayColor(int*);/*設(shè)置棋子第一次的顏色*/voidMoveColor(int*,inty);/*恢復(fù)原來棋盤狀態(tài)*/intQpChange(int*,inty,intz);/*判斷棋盤的變化*/voidDoScore(void);/*處理分?jǐn)?shù)*/voidPrintScore(intn);/*輸出成績*/voidplayWin(void);/*輸出勝利者信息*/*主函數(shù)*/voidmain(void)intgd=DETECT,gr;initgraph(&gd,&gr,c:tc);/*

3、初始化圖形系統(tǒng)*/DrawQp();/*畫棋盤*/playtoplay();/*人人對戰(zhàn)*/getch();closegraph();/*關(guān)閉圖形系統(tǒng)*/voidDrawQp()/*畫棋盤*/inti,j;score1=score2=0;/*棋手一開場得分都為0*/setbkcolor(BLUE);for(i=100;i=64-score1-score2)/*如果嘗試超過空格數(shù)則停步*/MoveColor(*,y);fillellipse(*,y,15,15);break;elsecontinue;/*如果按鍵無效*/DoScore();/*分?jǐn)?shù)的改變*/break;/*棋盤變化了,則輪對方走

4、棋*/else/*已經(jīng)有棋子就繼續(xù)按鍵*/continue;else/*四個方向按鍵的判斷*/if(key=LEFT&*120)/*左方向鍵*/MoveColor(*,y);fillellipse(*,y,15,15);SetPlayColor(t);*-=40;fillellipse(*,y,15,15);elseif(key=RIGHT&*80)/*右方向鍵*/MoveColor(*,y);fillellipse(*,y,15,15);SetPlayColor(t);*+=40;fillellipse(*,y,15,15);elseif(key=UP&y120)/*上方向鍵*/MoveCo

5、lor(*,y);fillellipse(*,y,15,15);SetPlayColor(t);y-=40;fillellipse(*,y,15,15);elseif(key=DOWN&y400)/*下方向鍵*/MoveColor(*,y);fillellipse(*,y,15,15);SetPlayColor(t);y+=40;fillellipse(*,y,15,15);if(key=ESC)/*完畢游戲*/break;if(score1+score2)=64|score1=0|score2=0)/*格子已經(jīng)占滿或一方棋子為0判斷勝負(fù)*/playWin();/*輸出最后結(jié)果*/break;

6、t=t%2+1;/*一方走后,改變棋子顏色即輪對方走*/cc=0;/*計數(shù)值恢復(fù)為0*/*endwhile*/voidSetPlayColor(intt)/*設(shè)置棋子顏色*/if(t%2=1)setfillstyle(SOLID_FILL,15);/*白色*/elsesetfillstyle(SOLID_FILL,8);/*灰色*/voidMoveColor(int*,inty)/*走了一步后恢復(fù)原來格子的狀態(tài)*/if(y100)/*如果是從起點出發(fā)就恢復(fù)藍(lán)色*/setfillstyle(SOLID_FILL,BLUE);else/*其他情況如果是1就恢復(fù)白色棋子,2恢復(fù)黑色棋子,或恢復(fù)藍(lán)色棋

7、盤*/switch(a(*-120)/40(y-120)/40)case1:setfillstyle(SOLID_FILL,15);break;/*白色*/case2:setfillstyle(SOLID_FILL,8);break;/*黑色*/default:setfillstyle(SOLID_FILL,BLUE);/*藍(lán)色*/intQpChange(int*,inty,intt)/*判斷棋盤的變化*/inti,j,k,kk,ii,jj,yes;yes=0;i=(*-120)/40;/*計算數(shù)組元素的行下標(biāo)*/j=(y-120)/40;/*計算數(shù)組元素的列下標(biāo)*/SetPlayColor(

8、t);/*設(shè)置棋子變化的顏色*/*開場往8個方向判斷變化*/if(j6)/*往右邊*/for(k=j+1;k8;k+)if(aik=aij|aik=0)/*遇到自己的棋子或空格完畢*/break;if(aik!=0&k8)for(kk=j+1;kkk&k1)/*判斷左邊*/for(k=j-1;k=0;k-)if(aik=aij|!aik)break;if(aik!=0&k=0)for(kk=j-1;kkk&k=0;kk-)aikk=aij;fillellipse(120+i*40,120+kk*40,15,15);if(kk!=j-1)yes=1;if(i6)/*判斷下邊*/for(k=i+1

9、;k8;k+)if(akj=aij|!akj)break;if(akj!=0&k8)for(kk=i+1;kkk&k1)/*判斷上邊*/for(k=i-1;k=0;k-)if(akj=aij|!akj)break;if(akj!=0&k=0)for(kk=i-1;kkk&k=0;kk-)akkj=aij;fillellipse(120+kk*40,120+j*40,15,15);if(kk!=i-1)yes=1;if(i1&j=0&kk=0&kkk&k=0;ii-,jj+)aiijj=aij;fillellipse(120+ii*40,120+jj*40,15,15);if(ii!=i-1)y

10、es=1;if(i1)/*左下*/for(k=i+1,kk=j-1;k=0;k+,kk-)if(akkk=aij|!akkk)break;if(akkk!=0&k=0)for(ii=i+1,jj=j-1;iik&k1&j1)/*左上*/for(k=i-1,kk=j-1;k=0&kk=0;k-,kk-)if(akkk=aij|!akkk)break;if(akkk!=0&k=0&kk=0)for(ii=i-1,jj=j-1;iik&k=0;ii-,jj-)aiijj=aij;fillellipse(120+ii*40,120+jj*40,15,15);if(ii!=i-1)yes=1;if(i6&j6)/*右下*/for(k=i+1,kk=j+1;kk8&kk8;k+,kk+)if(akkk=aij|!akkk)break;if(akkk!=0&kk8&k8)for(ii=i+1,jj=j+1;iik&k8;ii+,jj+)aiijj=aij;fillellipse(120+ii*40,120+jj*40,15,15);if(ii!=i+1)yes=1;returnyes;/*返回是否改變過棋子顏色的標(biāo)記*/voidDoScore()/*處理分?jǐn)?shù)*/inti,j;score1=s

溫馨提示

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

評論

0/150

提交評論