#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /*函数声明*/ void Init_Arr(int arr[ ][3]); //数组初始化 void Print_Checkerboard(int arr[ ][3]); //打印棋盘函数 int Player(int arr[ ][3], int line, int list); //玩家下棋 void Robot(int *arr); //电脑下棋 int Judge(int arr[ ][3]); //判断输赢 int main() { int Arr[3][3]; int x=0, y=0; int result = 0; int Result = 0; printf("Welcome to play the Checkboard Game!\n"); Init_Arr(Arr); Print_Checkerboard(Arr); while (1) { printf("Enter X,Y coordinates for your move:"); scanf("%d", &x); scanf("%d", &y); Result= Player(Arr, x, y); if (Result) { Robot(&Arr[0][0]); Print_Checkerboard(Arr); result = Judge(Arr); if (result == 1) { printf("The player win!\n\n"); break; } if (result == 2) { printf("The robot win!\n\n"); break; } if (result == 3) { printf("Peace!\n\n"); break; } } else printf("Can not next chess here!\n"); } system("pause"); return 0; } void Print_Checkerboard(int arr[ ][3]) //打印棋盘函数 { int size = 3; for (int i = 0; i < size; i++) { printf("\t\t %c | %c | %c \n",arr[i][0],arr[i][1],arr[i][2]); if(i<size-1) printf("\t\t---|---|---\n"); } } void Init_Arr(int arr[ ][3]) //数组初始化 { int row = 3; int list = 3; for (int i = 0; i < row; i++) { for (int j = 0; j < list; j++) { arr[i][j] = ' '; } } } int Player(int arr[ ][3],int line,int list) //玩家下棋 { if (line < 4 && list < 4) { if (arr[line - 1][list - 1] != ' ') { return 0; //下棋的位置不正确 } else { arr[line - 1][list - 1] = 'X'; return 1; //下棋位置正确 } } else { return 0; //下棋的位置不正确 } } void Robot(int *arr) //电脑下棋 { int size = 9; for (int i = 0; i < size; i++) { if (arr[i] ==' ') { arr[i] = '0'; break; } } } int Judge(int arr[ ][3]) //判断输赢 { int size = 3; int flag = 0; for (int i = 0; i < 3; i++) { if (((arr[i][0] == arr[i][1]) && (arr[i][1] == arr[i][2]) && (arr[i][0] == 'X')) || ((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i]) && (arr[0][i] == 'X'))) return 1; //玩家胜利 } if (((arr[0][0] == arr[1][1]) && (arr[0][0] == arr[2][2]) && (arr[0][0] == 'X')) || ((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]) && (arr[0][2] == 'X'))) { return 1; //玩家胜利 } for (int i = 0; i < 3; i++) { if (((arr[i][0] == arr[i][1]) && (arr[i][1] == arr[i][2]) && (arr[i][0] == '0')) || ((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i]) && (arr[0][i] == '0'))) return 2; //电脑胜利 } if (((arr[0][0] == arr[1][1]) && (arr[0][0] == arr[2][2]) && (arr[0][0] == '0')) || ((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]) && (arr[0][2] == '0'))) { return 2; //电脑胜利 } for (int i = 0; i < size; i++)//判断棋盘是否已下满 { for (int j = 0; j < size; j++) { if (arr[i][j] != ' ') flag++; } } if (flag == 9) { return 3;//平局 } return 0;//返回继续判断 }
用C语言实现“智障”的棋盘游戏
原创
©著作权归作者所有:来自51CTO博客作者羌笛夜的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
c语言实现扫雷游戏c语言
-
用C/C++语言实现贪吃蛇游戏
无意间听说贪吃蛇这个游戏可以用C语言做出来。对此,本人很感兴趣,
c++ 游戏 c语言 结构 贪吃蛇 -
用C语言实现控制台扫雷游戏
目录1.扫雷游戏的多文件管理和逻辑内在2.扫雷游戏的循环细节3.扫雷游戏的函数声明;4.扫雷游戏的实现; &
头文件 文件管理 数组 函数 扫雷 -
C语言实现-------找数字游戏
文章目录前言一、使用的库函数二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:一、使用的库函数
c语言 随机数 #include 读入数据