C语言简易三子棋

2023-02-21,,

  这是本人依据现学知识写的简易三子棋,也不是那么简洁明了,望大佬指点

 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define ROW 3
#define COL 3
char chess_board[ROW][COL];
int PlayGame(int choice){
printf("************************\n");
printf("* 欢迎来到三子棋游戏 *\n");
printf("* 请您选择 *\n");
printf("* 1.开始游戏 *\n");
printf("* 2.离开游戏 *\n");
printf("************************\n");
while (){
scanf("%d", &choice);
if (choice == )
{
return ;
break;
}
else if (choice == )
{
return ;
break;
}
else
{
printf("输入非法,请重新输入!");
continue;
}
}
}
int Init(char a[ROW][COL]){
for (int row = ; row <ROW; row++){
for (int col = ; col < COL; col++)
{
a[row][col] = ' ';
}
}
return ;
}
void Print(char a[ROW][COL]){
printf(" \n");
for (int i = ; i < ROW; i++){
printf(" %c | %c | %c \n", a[i][], a[i][], a[i][]);
if (i != ){
printf("----|----|----\n");
}
}
}
void PlayerMove(char a[ROW][COL]){
int row = -;
int col = -;
while (){
printf("请您选择落子点坐标:");
scanf("%d %d", &row, &col);
if (row< || row> || col< || col>){
printf("输入非法,请重新输入!");
continue;
}
else if (a[row][col] == 'x' || a[row][col] == 'o')
{
printf("已有棋子,请重新选择坐标!");
continue;
}
else
{
a[row][col] = 'o';
break;
} }
}
int IsFull(char a[ROW][COL]){
int sum = ;
for (int row = ; row < ROW; row++)
{
for (int col = ; col < COL; col++)
{
if (a[row][col] != ' ')
{ sum++;
}
}
}
if (sum == ){
return ;
}
}
char Checkwinner(char a[ROW][COL]){
//1.判断三子 横 竖 斜
for (int row = ; row < ROW; row++){
if (a[row][] == a[row][] && a[row][] == a[row][] && a[row][] != ' ')
{
return 'p';
}
}
for (int col = ; col < COL; col++){
if (a[][col] == a[][col] && a[][col] == a[][col] && a[][col] != ' ')
{
return 'p';
}
}
if (a[][] == a[][] && a[][] == a[][] && a[][] != ' ')
{
return 'p';
}
if (a[][] == a[][] && a[][] == a[][] && a[][] != ' '){
return 'p';
}
} void ComputeMove(char a[ROW][COL]){
printf("请电脑落子!\n");
while (){
int col = rand() % ;
int row = rand() % ;
if (a[row][col] == ' ')
{
a[row][col] = 'x';
break;
}
else continue;
}
}
void Game(){
Init(chess_board);//2.棋盘初始化
Print(chess_board);//3.打印棋盘
while (){ PlayerMove(chess_board);//4.用户落子
Print(chess_board);
if (Checkwinner(chess_board) == 'p')
{
printf("玩家获胜!\n");
break;
}
if (IsFull(chess_board) == )//2.判断是否和棋
{
printf("平局!");
break;
}
ComputeMove(chess_board);//6.电脑随机落子
Print(chess_board);//3.打印棋盘
if (Checkwinner(chess_board) == 'p')
{
printf("电脑获胜!\n");
break;
} if (IsFull(chess_board) == )//2.判断是否和棋
{
printf("平局!\n");
break;
}
}
} int main(){
int choice = ;
if (PlayGame(choice) == ) { //1.选择是否开始游戏 a)开始 b)离开
Game(); }
system("pause");
}

C语言简易三子棋的相关教程结束。

《C语言简易三子棋.doc》

下载本文的Word格式文档,以方便收藏与打印。