三子棋的實現

2021-07-24 20:40:26 字數 2947 閱讀 4195

三子棋的實現還是比較簡單的,在寫**之前,你先構建一下遊戲的架構,這樣寫的時候思路比較清晰,不容易思想卡克,很容易就完成。再乙個,你寫的**並不是孤芳自賞的,而是要拿出來給別人看,別人可以清楚地看懂你的**,這才是好**。

我們先來看三子棋的架構如何實現,這就看你的思維邏輯能力了。下面**很清晰的展現了這一架構:

void game()                                         //主遊戲模組

; //用二維陣列來實現落子的座標

init_chessboard(arr, rows, cols); //初始化棋盤

display_chessboard(arr, rows, cols); //列印棋盤

while (1) //通過while迴圈來實現玩家與電腦交替下棋的過程

printf("------------\n");

computer_move(arr, rows, cols); //電腦下棋

display_chessboard(arr, rows, cols);

ret = judge_win(arr, rows, cols); //判斷棋盤是否已滿

if (ret != ' ')

}if ('o' == ret)

printf("恭喜你贏了!!!\\n");

else

if ('x' == ret)`這裡寫**片`

printf("很遺憾你輸了!!!\n");

else

printf("平局\n");

}

下來我們來設計主函式。切記,主函式一定要簡單,這樣看上去一目了然,很有條理性。看下面主函式**:

int main()

} while (input);

return

0;}

寫到這,可以說遊戲已經完成了60%,剩下的就是具體功能塊的實現和一些有待完善的小細節。

一, 玩家下棋

void player_move(char arr[rows][cols], int rows, int cols)

}else

}}

二, 電腦下棋

void computer_move(char arr[rows][cols], int rows, int cols)

}}

三, 判斷棋盤是否已滿

static

int is_full(char arr[rows][cols],int rows,int cols)}}

return

1; //滿了,平局

}char judge_win(char arr[rows][cols], int rows, int cols)

if ((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i]) && arr[0][i] != ' ')

}if ((arr[0][0]) == (arr[1][1]) && (arr[1][1]) == (arr[2][2])&&arr[1][1]!=' ')

if ((arr[0][2]) == (arr[1][1]) && (arr[1][1]) == (arr[2][0])&&arr[1][1] != ' ')

if (is_full(arr, rows, cols))

else

return

' '; //沒滿,繼續下

}

四, 初始化棋盤

void init_chessboard(char arr[rows][cols],int rows,int cols)

//}memset(arr, ' ', sizeof(char)*rows*cols); //方法二,效率更高

}

五, 列印棋盤

void display_chessboard(char arr[rows][cols], int rows, int cols)

}}

六, 選單模組

void print_menu()

//選單函式

最後一點就是建立標頭檔案對函式進行宣告。**如下:

#ifndef __chees_h__

#define __chees_h__

#define rows 3 //巨集定義

#define cols 3

void init_chessboard(char arr[rows][cols], int rows, int cols);

void display_chessboard(char arr[rows][cols], int rows, int cols);

void player_move(char arr[rows][cols], int rows, int cols);

void computer_move(char arr[rows][cols], int rows, int cols);

char judge_win(char arr[rows][cols], int rows, int cols);

int is_full(char arr[rows][cols], int rows,int cols);

#endif //__chees_h__

這個三子棋小遊戲就完成了,是不是很簡單,只要思路清晰,寫出這個應該對你還是比較簡單的。相信你,加油!!!

三子棋的實現

c語言實現三子棋 c語言實現三子棋關鍵是運用到二維陣列的知識,使用多檔案程式設計來實現這個程式,我們需要建立乙個標頭檔案,兩個原始檔來實現 main.c chess.c chess.h 如下圖所示,玩家的棋為字元 x 電腦的棋為字元 0 接下來,我們看一下具體的 實現 首先,要完成對頭檔案的宣告 i...

c 實現三子棋

2.顯示棋盤 3.玩家選擇座標進行下棋 4.電腦進行隨機座標下棋 5.每次落子後進行判斷輸贏 6.列印當前棋盤 二 介紹 總結 1.1主要用於函式宣告,以及對棋盤的大小進行初始化 標頭檔案的作用 1.方便開發 包含一些檔案需要的共同的常量,結構,型別定義,函式,變數申明 2.使函式的作用域從函式宣告...

簡單的三子棋實現

game.h pragma warning disable 4996 ifndef game h define game h include include include define row 3 define col 3 void initboard char board row col int...