問題描述:
3*3的棋盤中,只要一條線上出現三個一樣的棋子就獲勝(玩家或電腦);如果棋盤已經放滿還未出現三個棋子一條線則打成平手,
具體細節:
初始化棋盤(用空格初始化)

//初始化棋盤
voidinitChess(charchessbox[ROW][COL]){ for(introw=0;row<ROW;row++){ for(intcol=0;col<COL;col++){ chessbox[row][col]=' ';}}}
列印棋盤
//列印棋盤
voidprintChess(charchessbox[ROW][COL]){ system("cls");printf("+---+---+---+\n");for(introw=0;row<ROW;row++){ printf("| %c | %c | %c |\n",chessbox[row][0],chessbox[row][1],chessbox[row][2]);printf("+---+---+---+\n");}}
電腦落子(用o表示電腦落子)
//電腦落子(用o表示)
voidcomputerMove(charchessbox[ROW][COL]){ srand(time(0));while(1){ introw=rand()%3;intcol=rand()%3;if(chessbox[row][col]==' '){ chessbox[row][col]='o';break;}}}
玩家落子
//玩家落子(用x表示)
voidplayerMove(charchessbox[ROW][COL]){ introw,col;while(1){ printf("請輸入您的落子地點:");scanf("%d %d",&row,&col);if(row>=3||col>=3){ printf("您輸入的落子位置有誤,請重新輸入:");continue;}if(chessbox[row][col]==' '){ chessbox[row][col]='x';break;}printf("該位置已有棋子,請重新輸入:");}}
三個棋子一條線

在一行或一列實作三個棋子一條線
//行
for(introw=0;row<ROW;row++){ if(chessbox[row][0]!=' '&&chessbox[row][0]==chessbox[row][1]&&chessbox[row][0]==chessbox[row][2]){ returnchessbox[row][0];}}//列
for(intcol=0;col<COL;col++){ if(chessbox[0][col]!=' '&&chessbox[0][col]==chessbox[1][col]&&chessbox[0][col]==chessbox[2][col]){ returnchessbox[0][col];}}
對角線實作三個棋子一條線
if(chessbox[0][0]!=' '&&chessbox[0][0]==chessbox[1][1]&&chessbox[0][0]==chessbox[2][2]){ returnchessbox[0][0];}if(chessbox[2][0]!=' '&&chessbox[2][0]==chessbox[1][1]&&chessbox[2][0]==chessbox[0][2]){ returnchessbox[2][0];}
和棋
棋盤放滿還未獲勝,則為和棋,打成了平手,
在這里插入代碼片//和棋 if(isFull(checkbox)){ return'a';}

輸贏約定:
回傳x代表玩家獲勝
if(isWinner(chessbox)=='x'){ printf("恭喜您贏啦!\n");break;}
回傳o代表電腦獲勝
if(isWinner(chessbox)=='o'){ printf("很遺憾,您輸了!\n");break;}
回傳a代表和棋(打成平手)
if(isWinner(chessbox)=='a'){ printf("你和電腦同一水平呦!\n");break;}
判斷棋盤是否放滿:
回傳1代表棋盤已滿
回傳0代表棋盤未滿
//判斷棋盤是否擺滿//1表示滿;0表示不滿,
intisFullChess(charchessbox[ROW][COL]){ for(introw=0;row<ROW;row++){ for(intcol=0;col<COL;col++){ //找到空格,說明未滿
if(chessbox[row][col]==' '){ return0;}}}return1;}
源代碼:

如果你在學習C/C++的程序中遇到了問題,可以來加入小編的企鵝圈問小編哦~小編很熱情的(●’?’●)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/208596.html
標籤:其他
上一篇:iPhone12賣得很火熱?爬取50萬條評論看看用戶體驗怎樣
下一篇:微信小程式開發之云開發
