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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

井字棋

發(fā)布時(shí)間:2023/12/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 井字棋 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h>int Menu(){printf("+++++++++++++++++\n");printf("1.開(kāi)始游戲\n");printf("0.結(jié)束游戲\n");printf("+++++++++++++++++\n");int choise = 0;scanf("%d", &choise);return choise; }#define MAX_ROW 3 #define MAX_COL 3char chess_board[MAX_ROW][MAX_COL];void Init(){for (int row = 0; row < MAX_ROW; ++row) {for (int col = 0; col < MAX_COL; ++col){chess_board[row][col] = ' ';}}srand((unsigned int)time(0)); }void Print(){for (int row = 0; row < MAX_ROW; ++row) {printf("| %c | %c | %c |\n", chess_board[row][0], chess_board[row][1], chess_board[row][2]);if (row != MAX_ROW - 1){printf("|---|---|---|\n");}}//TODO//system("pause"); }void PlayerMove(){printf("玩家落子\n");while (1){printf("請(qǐng)輸入落子坐標(biāo)(row col)\n");int row = 0, col = 0;scanf("%d %d", &row, &col);if (row < 0 || row >= MAX_ROW || col<0 || col>MAX_COL){printf("輸入坐標(biāo)有誤,請(qǐng)從新輸入\n");continue;}if (chess_board[row][col] != ' '){printf("該位置已被占用!\n");continue;}chess_board[row][col] = 'x';break;}printf("玩家落子結(jié)束\n"); }void ComputerMove(){printf("電腦落子!\n");while (1){int row = rand() % 3;int col = rand() % 3;if (chess_board[row][col] != ' '){continue;}chess_board[row][col] = 'o';break;}printf("電腦落子完畢!\n"); }//如果滿了返回1 否則返回0 int IsFull(){for (int row = 0; row < MAX_ROW; ++row){for (int col = 0; col < MAX_COL; ++col){if (chess_board[row][col] == ' '){return 0;}}}return 1; }// x為玩家獲勝 // o為電腦獲勝 // q表示和棋 // ' '勝負(fù)未分 char WinnerCheck(){//行成線for (int row = 0; row < MAX_ROW; ++row){if (chess_board[row][0] == chess_board[row][1] && chess_board[row][0] == chess_board[row][2]){return chess_board[row][0];}}//列成線for (int col = 0; col < MAX_COL; ++col){if (chess_board[0][col] == chess_board[1][col] && chess_board[0][col] == chess_board[2][col]){return chess_board[0][col];}}//對(duì)角成線if (chess_board[0][0] == chess_board[1][1] && chess_board[0][0] == chess_board[2][2]){return chess_board[0][0];}if (chess_board[0][2] == chess_board[1][1] && chess_board[0][2] == chess_board[2][0]){return chess_board[0][2];}if (IsFull()){return 'q';}return ' '; }void Game(){//1. 初始化棋盤(pán)Init();char winner = ' ';while (1){//2. 打印棋盤(pán)Print();//3. 玩家落子PlayerMove();//4. 檢測(cè)勝負(fù)winner = WinnerCheck();if (winner != ' '){break;}//5. 電腦落子ComputerMove();//6. 檢測(cè)勝負(fù)winner = WinnerCheck();if (winner != ' '){break;}system("cls");}Print();if (winner == 'x'){printf("您贏了!\n");}else if (winner == 'o'){printf("您輸了!\n");}else if (winner == 'q'){printf("平局!\n");}else{printf("代碼BUG!\n");}}int main(){while (1){int choice = Menu();if (choice == 1){Game();}else if(choice == 0){printf("goodbye\n");break;}else {printf("您的輸入有誤!\n");}}system("pause");return 0; }

總結(jié)

以上是生活随笔為你收集整理的井字棋的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。