#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> #define max_row 3 #define max_col 3 char board[max_row][max_col]; void menu(){ printf("*************************\n"); printf("1:开始游戏\n"); printf("0:结束游戏\n"); printf("*************************\n"); } void init(){ int row = 0; int col = 0; for (row; row < max_row; ++row){ for (col; col < max_col; ++col){ board[row][col] = '\0'; } } } //打印棋盘 void checkerboard(){ int row = 0; int col = 0; for (row; row < max_row; ++row){ printf("| %c| %c | %c |\n", board[row][0], board[row][1], board[row][2]); printf("-------------\n"); } } void piayermove(){ int row = 0; int col = 0; while (1){ printf("玩家落子\n"); printf("请输入坐标\n"); scanf("%d %d", &row, &col); if (row > 2 || col > 2){ printf("你的输入有误\n"); continue; } if (board[row][col] != '\0'){ printf("该处已落子\n"); continue; } if (board[row][col] == '\0'){ board[row][col] = 'x'; break; } } } int checkwin(){ for (int row = 0; row < max_row; ++row){ while (board[row][0] == board[row][1] && board[row][0] == board[row][2] && board[row][0] && board[row][0] != '\0'){ return board[row][0]; } } for (int col = 0; col < max_col; ++col){ while (board[0][col] == board[1][col] && board[0][col] == board[2][col] && board[0][col] && board[0][col] != '\0'){ return board[0][col]; } } if (board[0][0] == board[1][1] && board[0][0] == board[2][2] && board[0][0] != '\0'){ return board[0][0]; } } void computermove(){ while (1){ int row = rand() % 3; int col = rand() % 3; if (board[row][col] == '\0'){ board[row][col] = 'o'; break; } } } void game(){ init(); checkerboard(); while (1){ piayermove(); checkerboard(); system("cls"); int win = checkwin(); if (win == 'x'){ printf("你赢了\n"); } else if (win == 'o'){ printf("你输了\n"); } computermove(); checkerboard(); if (win == 'x'){ printf("你赢了\n"); } else if (win == 'o'){ printf("你输了\n"); } } } int main(){ srand((unsigned int)time(0)); while (1){ menu(); int chose; scanf("%d", &chose); if (chose == 1){ game(); } else if (chose == 0){ break; } else{ printf("你的输入有误\n"); } } //打印棋盘 //棋手输入 //判断胜负 //电脑输入 //判断胜负 system("pause"); return 0; }
C语言学习自记录8(三子棋)
最新推荐文章于 2024-06-18 07:00:00 发布