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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

三字棋代码

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三字棋代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

頭文件

#define ROW 3#define COL 3//頭文件的包含#include<string.h>#include<stdio.h>#include<stdlib.h>#include<time.h>//函數聲明//初始化棋盤void InitBoard(char board[ROW][COL],int row,int col);//打印棋盤void DisplayBoard(char board[ROW][COL], int row,int col);void PlayerMove(char board[ROW][COL], int row, int col);void ComputerMove(char board[ROW][COL], int row, int col);char IsWin(char board[ROW][COL], int row, int col);

game.c 函數的實現

#define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" #include<stdlib.h> #include<time.h> int IsFull(char board[ROW][COL], int row, int col) {int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (board[i][j] == ' '){return 0;}}}return 1;} void InitBoard(char board[ROW][COL], int row,int col) {int i = 0;for (i = 0; i < row; i++){int j = 0;for (j = 0; j < col; j++){board[i][j] = ' ';}} } void DisplayBoard(char board[ROW][COL], int row, int col) {int i = 0;int j = 0;for (i = 0; i < row; i++){printf(" %c | %c | %c\n", board[i][0], board[i][1], board[i][2]);if(i<row-1)printf("---|---|---\n"); } } void PlayerMove(char board[ROW][COL], int row, int col) {int x = 0;int y = 0;printf("玩家下棋:\n");while (1){printf("請輸入要下棋的坐標:\n");scanf("%d %d", &x, &y);if (x >= 1 && x <= row && y>=1 && y <= col){if (board[x - 1][y - 1] == ' ');{board[x - 1][y - 1] = '*';break;} }else{printf("坐標非法,請重新輸入\n");}} } void ComputerMove(char board[ROW][COL], int row, int col) {//電腦隨機下棋int x;int y;printf("電腦下棋:\n");while (1){x = rand() % row;y = rand() % col;if (board[x][y] == ' '){board[x][y] = '#';break;}}} char IsWin(char board[ROW][COL], int row, int col) //玩家贏-‘*’電腦贏—‘#’平局—‘q’繼續—‘c’ {int i = 0;for (i = 0; i < row; i++){if (board[i][0] == board[i][1] == board[i][2]&&board[i][0]!=' '){return board[i][0];}}for (int j = 0; j< col; j++){if (board[0][i] == board[1][i] == board[2][i] && board[0][i] != ' '){return board[0][i];}}if (board[0][0] == board[1][1] == board[2][2] && board[0][0] != ' '){return board[0][0];}else if (board[0][2] == board[1][1] == board[2][0] && board[0][2] != ' '){return board[1][1];}//判斷是否平局else if (IsFull(board, ROW, COL)){return 'q';}//游戲繼續return 'c'; }

test.c 測試游戲的邏輯源文件

#include <stdio.h>#include"game.h"void menu()//規劃菜單{printf("*****************************\n");printf("******** 1.paly *********\n");printf("******** 0.exit *********\n");printf("*****************************\n");}void game(){char ret = 0;//存放數據需要一個3*3的二維數組char board[ROW][COL] = { 0 };//初始化棋盤InitBoard(board, ROW, COL);//顯示棋盤DisplayBoard(board, ROW, COL);while (1){//玩家下棋PlayerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//打印棋盤//判斷輸贏 玩家贏 電腦贏 平局 繼續ret = IsWin(board, ROW, COL);if (ret != 'c'){break;}//電腦下棋ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);ret = IsWin(board, ROW, COL);if (ret != 'c'){break;}//打印棋盤//判斷輸贏}if (ret == '*'){printf("玩家贏\n");}else if (ret == '#'){printf("電腦贏\n");}else if (ret == 'q'){printf("平局\n");}}int main(){int input = 0;do{menu();printf("請選擇:");scanf("%d", &input);switch (input){case 1:game();break;case 0:break;default:printf("選擇錯誤,請重新選擇");break;}} while (input);return 0;}

總結

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

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