




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、=WORD完好版-可編寫-專業(yè)資料分享=#include#includeusingnamespacestd;#defineWIDE_AND_LONG20/棋盤的長和寬#defineNAME_LEN20/輸入姓名的長度typedefclassGobangpublic:intInitPlayerName(char*,char*);intCheckInput(char,int);intCheckIndexInput(char,char,char);intGetPlayerName();intInitBoard();intWriteBoard(char,char,bool);intBeginOrNot
2、();intCheckRow();intCheckColumn();intCheckTopLeft();intCheckTopRight();intCheckDownLeft();intCheckDownRight();intCheckDraw();intCheckFinish();intChess();intShowBoard();private:characBoardWIDE_AND_LONGWIDE_AND_LONG;characPlayerOneNameNAME_LEN;characPlayerTwoNameNAME_LEN;GOBANG;/初始化姓名的缺省值intGOBANG:Ini
3、tPlayerName(char*pPlayerOne,char*pPlayerTwo)strcpy(acPlayerOneName,pPlayerOne);strcpy(acPlayerTwoName,pPlayerTwo);return0;/檢查輸入姓名時能否含非法字符空格和Tab鍵intGOBANG:CheckInput(charch,intiNameLen)if(=ch|t=ch)cout含有非法字符!NAME_LEN-1)-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=cout輸入高出限制長度!=0&cRow=9)iRow=static_cast(cRow-0);els
4、eif(cRow=A&cRow=static_cast(A+WIDE_AND_LONG-10-1)iRow=static_cast(cRow-A)+10);elseiRow=static_cast(cRow-a)+10);if(cColumn=0&cColumn=9)iColumn=static_cast(cColumn-0);elseif(cColumn=A&cColumn=static_cast(A+WIDE_AND_LONG-10-1)iColumn=static_cast(cColumn-A)+10);elseiColumn=static_cast(cColumn-a)+10);if(
5、+!=acBoardiRowiColumn)cout此處已有棋子!endl;return-1;if(!bJudge)acBoardiRowiColumn=static_cast(1);else-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=acBoardiRowiColumn=static_cast(2);return0;/檢查坐標(biāo)輸入能否合法intGOBANG:CheckIndexInput(charcRow,charcSeparator,charcColumn)if(!cRow|!cSeparator|!cColumn)return-1;if(!(cRow=0&cRow=A&
6、cRow=static_cast(A+WIDE_AND_LONG-10-1)|(cRow=a&cRow=static_cast(a+WIDE_AND_LONG-10-1)return-1;if(!=cSeparator&t!=cSeparator&,!=cSeparator)return-1;if(!(cColumn=0&cColumn=A&cColumn=static_cast(A+WIDE_AND_LONG-10-1)|(cColumn=a&cColumn=static_cast(a+WIDE_AND_LONG-10-1)return-1;return0;/獲得玩家的昵稱intGOBANG
7、:GetPlayerName()fflush(stdin);charcTemp=0;intiNameLen=0;cout能否自己定義昵稱?是(Y),否(隨意鍵):;cTemp=getch();coutendl;if(y!=cTemp)&(Y!=cTemp)return0;fflush(stdin);memset(acPlayerOneName,0,sizeof(acPlayerOneName);-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=memset(acPlayerTwoName,0,sizeof(acPlayerTwoName);cout請玩家一輸入昵稱:;while(n
8、!=(cTemp=getchar()if(-1=CheckInput(cTemp,iNameLen)fflush(stdin);cout請玩家一輸入昵稱:;continue;acPlayerOneNameiNameLen=cTemp;iNameLen+;if(0=iNameLen)strcpy(acPlayerOneName,玩家一);iNameLen=0;fflush(stdin);cout請玩家二輸入昵稱:;while(n!=(cTemp=getchar()if(-1=CheckInput(cTemp,iNameLen)fflush(stdin);cout請玩家二輸入昵稱:;continu
9、e;acPlayerTwoNameiNameLen=cTemp;iNameLen+;if(0=iNameLen)strcpy(acPlayerTwoName,玩家一);return0;/初始化棋盤intGOBANG:InitBoard()intiRow=0;intiColumn=0;for(iRow=0;iRowWIDE_AND_LONG;iRow+)for(iColumn=0;iColumnWIDE_AND_LONG;iColumn+)-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=acBoardiRowiColumn=+;return0;/檢查棋盤橫向能否存在五子連珠intG
10、OBANG:CheckRow()intiRow=0;intiColumn=0;intiPlayerOneLen=0;intiPlayerTwoLen=0;for(iRow=0;iRowWIDE_AND_LONG;iRow+)while(iColumnWIDE_AND_LONG)if(static_cast(1)=acBoardiRowiColumn)iPlayerOneLen+;iPlayerTwoLen=0;elseif(static_cast(2)=acBoardiRowiColumn)iPlayerTwoLen+;iPlayerOneLen=0;elseiPlayerTwoLen=0;i
11、PlayerOneLen=0;iColumn+;if(iPlayerOneLen=5)return1;if(iPlayerTwoLen=5)return2;iPlayerOneLen=0;iPlayerTwoLen=0;iColumn=0;return0;-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=/檢查棋盤豎向能否存在五子連珠intGOBANG:CheckColumn()intiRow=0;intiColumn=0;intiPlayerOneLen=0;intiPlayerTwoLen=0;for(iColumn=0;iColumnWIDE_AND_LONG;iColumn
12、+)while(iRowWIDE_AND_LONG)if(static_cast(1)=acBoardiRowiColumn)iPlayerOneLen+;iPlayerTwoLen=0;elseif(static_cast(2)=acBoardiRowiColumn)iPlayerTwoLen+;iPlayerOneLen=0;elseiPlayerTwoLen=0;iPlayerOneLen=0;iRow+;if(iPlayerOneLen=5)return1;if(iPlayerTwoLen=5)return2;iPlayerOneLen=0;iPlayerTwoLen=0;iRow=0
13、;return0;/檢查棋盤左上方(包含對角線)能否存在五子連珠intGOBANG:CheckTopLeft()-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=intiRow=0;intiTempRow=0;intiColumn=0;intiPlayerOneLen=0;intiPlayerTwoLen=0;for(iRow=4;iRow=0)if(static_cast(1)=acBoardiTempRowiColumn)iPlayerOneLen+;iPlayerTwoLen=0;if(iPlayerOneLen=5)return1;elseif(static_cast(2)
14、=acBoardiTempRowiColumn)iPlayerTwoLen+;iPlayerOneLen=0;if(iPlayerTwoLen=5)return2;elseiPlayerTwoLen=0;iPlayerOneLen=0;iTempRow-;iColumn+;iPlayerOneLen=0;iPlayerTwoLen=0;iColumn=0;return0;/檢查棋盤右上方(包含對角線)能否存在五子連珠intGOBANG:CheckTopRight()-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=intiRow=0;intiColumn=0;intiTempCol
15、umn=0;intiPlayerOneLen=0;intiPlayerTwoLen=0;for(iColumn=0;iColumnWIDE_AND_LONG-4;iColumn+)iTempColumn=iColumn;while(iTempColumnWIDE_AND_LONG)if(static_cast(1)=acBoardiRowiTempColumn)iPlayerOneLen+;iPlayerTwoLen=0;if(iPlayerOneLen=5)return1;elseif(static_cast(2)=acBoardiRowiTempColumn)iPlayerTwoLen+;
16、iPlayerOneLen=0;if(iPlayerTwoLen=5)return2;elseiPlayerTwoLen=0;iPlayerOneLen=0;iRow+;iTempColumn+;iPlayerOneLen=0;iPlayerTwoLen=0;iRow=0;return0;/檢查棋盤左下方(不包含對角線)能否存在五子連珠intGOBANG:CheckDownLeft()-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=intiRow=0;intiTempRow=0;intiColumn=0;intiPlayerOneLen=0;intiPlayerTwoLen=0;
17、for(iRow=1;iRowWIDE_AND_LONG-4;iRow+)iTempRow=iRow;while(iTempRowWIDE_AND_LONG)if(static_cast(1)=acBoardiTempRowiColumn)iPlayerOneLen+;iPlayerTwoLen=0;if(iPlayerOneLen=5)return1;elseif(static_cast(2)=acBoardiTempRowiColumn)iPlayerTwoLen+;iPlayerOneLen=0;if(iPlayerTwoLen=5)return2;elseiPlayerTwoLen=0
18、;iPlayerOneLen=0;iTempRow+;iColumn+;iPlayerOneLen=0;iPlayerTwoLen=0;iColumn=0;return0;/檢查棋盤右下方(不包含對角線)能否存在五子連珠-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=intGOBANG:CheckDownRight()intiRow=0;intiTempRow=0;intiColumn=WIDE_AND_LONG-1;intiPlayerOneLen=0;intiPlayerTwoLen=0;for(iRow=1;iRowWIDE_AND_LONG-4;iRow+)iTempRo
19、w=iRow;while(iTempRowWIDE_AND_LONG)if(static_cast(1)=acBoardiTempRowiColumn)iPlayerOneLen+;iPlayerTwoLen=0;if(iPlayerOneLen=5)return1;elseif(static_cast(2)=acBoardiTempRowiColumn)iPlayerTwoLen+;iPlayerOneLen=0;if(iPlayerTwoLen=5)return2;elseiPlayerTwoLen=0;iPlayerOneLen=0;iTempRow+;iColumn-;iPlayerO
20、neLen=0;iPlayerTwoLen=0;iColumn=WIDE_AND_LONG-1;return0;-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=/檢查能否平手intGOBANG:CheckDraw()intiRow=0;intiColumn=0;for(iRow=0;iRowWIDE_AND_LONG;iRow+)for(iColumn=0;iColumnWIDE_AND_LONG;iColumn+)if(+=acBoardiRowiColumn)return1;return0;/檢查能否達到結(jié)束的條件(五子連珠或平手)intGOBANG:CheckFinish(
21、)intiJudgeRow=0;intiJudgeColumn=0;intiJudgeTopLeft=0;intiJudgeTopRight=0;intiJudgeDownLeft=0;intiJudgeDownRight=0;intiJudgeDraw=0;iJudgeRow=CheckRow();iJudgeColumn=CheckColumn();iJudgeTopLeft=CheckTopLeft();iJudgeTopRight=CheckTopRight();iJudgeDownLeft=CheckDownLeft();iJudgeDownRight=CheckDownRight(
22、);iJudgeDraw=CheckDraw();if(1=iJudgeRow|1=iJudgeColumn|1=iJudgeTopLeft|1=iJudgeTopRight|1=iJudgeDownLeft|1=iJudgeDownRight)cout恭賀玩家acPlayerOneName獲勝!endl;return1;if(2=iJudgeRow|2=iJudgeColumn|2=iJudgeTopLeft|2=iJudgeTopRight|2=iJudgeDownLeft|2=iJudgeDownRight)cout恭賀玩家acPlayerTwoName獲勝!endl;return1;-
23、完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=if(0=iJudgeDraw)cout平手!endl;return1;return0;/顯示棋盤到控制臺intGOBANG:ShowBoard()intiRow=0;intiColumn=0;system(cls);cout;for(iRow=0;iRowWIDE_AND_LONG;iRow+)if(9iRow)coutstatic_cast(A+iRow-10);elsecoutiRow;coutendl;for(iRow=0;iRowWIDE_AND_LONG;iRow+)if(9iRow)coutstatic_cast(A+i
24、Row-10);elsecoutiRow;for(iColumn=0;iColumnWIDE_AND_LONG;iColumn+)coutacBoardiRowiColumn;coutendl;return0;/開始下棋intGOBANG:Chess()-完好版學(xué)習(xí)資料分享-=WORD完好版-可編寫-專業(yè)資料分享=boolbJudge=false;while(1)charcRow=0;charcSeparator=0;charcColumn=0;charcTemp=0;intiLen=1;fflush(stdin);if(!bJudge)cout請acPlayerOneName輸入對應(yīng)的行和列(格式:a,3或a3或a3):;elsecout請acPlayerTwoName輸入對應(yīng)的行和列(格式:a,3或a3或a3):;while(n!=(cTemp=getchar()if(iLen3)cout輸入有誤!endl;ff
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025主體勞務(wù)合同范本AA:雙方權(quán)利與義務(wù)明確約定
- 廣東省茂名市2024~2025學(xué)年 高三下冊半月考(三)數(shù)學(xué)試卷附解析
- 模式識別與分類-洞察闡釋
- 2024年河北公務(wù)員行測(A類)真題及答案
- 鄭州市第九人民醫(yī)院招聘專業(yè)技術(shù)人才筆試真題2024
- 云浮市羅定市招聘公益性崗位人員筆試真題2024
- 永州市江永縣招聘事業(yè)單位人員筆試真題2024
- 石大學(xué)前兒童保育學(xué)課外必讀:孩子們最愛聽的40句話
- 2025年高校輔導(dǎo)員考試基礎(chǔ)知識試題
- 音樂版權(quán)經(jīng)紀(jì)市場分析-洞察闡釋
- 2025春國家開放大學(xué)學(xué)歷提升班招生服務(wù)合同
- 公立醫(yī)院成本核算指導(dǎo)手冊
- 【MOOC】《基礎(chǔ)工業(yè)工程》(東北大學(xué))中國大學(xué)慕課答案
- 人教版小學(xué)數(shù)學(xué)三年級下冊《奧數(shù)競賽試卷》
- (自考)經(jīng)濟學(xué)原理中級(政經(jīng))課件 第五章 資本主義經(jīng)濟危機與歷史發(fā)展
- 任務(wù)10-3 頂棚 裝飾 施20課件講解
- 2024年浙江省中考英語真題卷及答案解析
- 英倫歷史文化拾遺知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱師范大學(xué)
- 人工智能產(chǎn)品設(shè)計與用戶體驗優(yōu)化
- 【MOOC】軍事理論-哈爾濱工程大學(xué) 中國大學(xué)慕課MOOC答案
- 《醫(yī)學(xué)科研倫理》課件
評論
0/150
提交評論