日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言三字棋小游戏

發布時間:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言三字棋小游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言三字棋小游戲


開始做之前先想好寫程序的大致流程:

注意這里的數組大小可以定義為宏
方便更改
如果我們寫成3和3這種那么如果我們想要改棋盤大小那么就非常麻煩
如果直接定義為宏 那么直接可以在定義宏里面修改數值即可

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #define MAX_ROW 3 #define MAX_COL 3 void init(char arr[MAX_ROW][MAX_COL]) {for (int row = 0; row < MAX_ROW; row++) {for (int col = 0; col < MAX_COL; col++) {arr[row][col] = ' ';}} }void printchess(char arr[MAX_ROW][MAX_COL]) {printf("+---+---+---+\n");for (int row = 0; row < MAX_ROW; row++) {printf("|");for (int col = 0; col < MAX_COL; col++) {printf(" %c |", arr[row][col]);}printf("\n+---+---+---+\n");}}void playerMove(char arr[MAX_ROW][MAX_COL]) {while (1) {printf("玩家請進行落子\n");int row = 0;int col = 0;scanf("%d %d", &row, &col);if (row >= MAX_ROW || row < 0 || col >= MAX_COL || col < 0) {printf("您輸入的坐標有誤請重新輸入\n");continue;}if (arr[row][col] != ' ') {printf("您輸入的位置有子了請重新輸入!\n");continue;}arr[row][col] = 'x';break;} } int 整形;void computerMove(char arr[MAX_ROW][MAX_COL]) {while (1) {int row = rand() % MAX_ROW;int col = rand() % MAX_COL;if (arr[row][col] != ' ') {continue;}arr[row][col] = 'o';break;} } // 此處規定返回1 表示棋盤滿了 返回0表示棋盤未滿 int isFull(char arr[MAX_ROW][MAX_COL]) {for (int row = 0; row < MAX_ROW; row++) {for (int col = 0; col < MAX_COL; col++) {// 遍歷棋盤, 看看有沒有空格. 有空格就是沒滿if (arr[row][col] ==' ' ) {return 0;}}}return 1;//全部遍歷完了都沒用空格表示滿了 } // 規定返回'x'表示為玩家獲勝 'o'表示為電腦獲勝 'q'表示雙方和局 ' '表示棋還沒有下完繼續 char isWin(char arr[MAX_ROW][MAX_COL]) {for (int row = 0; row < MAX_ROW; row++) {if (arr[row][0] != ' '&&arr[row][0] == arr[row][2]&& arr[row][0] == arr[row][1]) {return arr[row][0];}}for (int col = 0; col < MAX_COL; col++) {if (arr[0][col] != ' '&&arr[0][col] == arr[2][col]&& arr[1][col] == arr[0][col]) {return arr[0][col];}}if (arr[0][0] != ' '&&arr[0][0] == arr[1][1]&& arr[0][0] == arr[2][2]) {return arr[0][0];}if (arr[0][2] != ' '&& arr[0][2] == arr[1][1]&& arr[0][2] == arr[2][0]) {return arr[0][2];}// 判斷完所有的對角線和行和列之后就要判斷是否為和棋if (isFull(arr)) {return 'q';}return ' '; } int main() {// 1.創造一個3x3的二維數組char arr[MAX_ROW][MAX_COL];// 2. 打印一個棋盤init(arr);char winner = ' ';while (1) {printchess(arr);// 規定 'x'表示玩家落子 'o'表示電腦隨機落子 ' '表示還沒有落子的地方// 3.玩家進行落子 讓玩家輸入一組(row,col)進行落子playerMove(arr);// 4.判斷是否獲勝 winner = isWin(arr);if (winner != ' ') {// 就代表游戲結束了break;}// 5.電腦隨機進行落子并用'o'表示computerMove(arr);// 6.判斷是否獲勝char winner = isWin(arr);if (winner != ' ') {// 就代表游戲結束了break;}}if (winner == 'x') {printf("恭喜你贏了\n");}else if (winner == 'o') {printf("不會吧bro連人工智障的打不贏\n");}else {printf("你竟然和人工智障和棋了...\n");}system("pause");return 0; }

總結

以上是生活随笔為你收集整理的C语言三字棋小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。