#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define ROW 3
#define COL 3
char a[ROW][COL];
void menu();
void game();
void Init();
void Print();
void Player();
void AI();
int check(int x, int y, char ch);
int Judge(char ch);
int main()
{
int n = 0;
while (1)
{
menu();
scanf("%d", &n);
switch (n)
{
case 0:
return 0;
case 1:
game();
break;
default:
break;
}
}
}
void menu()
{
printf("-----三子棋游戏-----\n");
printf("1、开始游戏-----\n");
printf("0、结束游戏-----\n");
printf("请输入序号->");
}
void Init()
{
for (int i = 0;i < ROW;i++)
{
for (int j = 0;j < COL;j++)
{
a[i][j] = ' ';
}
}
}
void Print()
{
for (int i = 0;i < ROW;i++)
{
for (int j = 0;j < COL;j++)
{
printf(" %c ", a[i][j]);
if (j != COL - 1)
{
printf("|");
}
}
printf("\n");
if (i != ROW - 1)
{
for (int j = 0;j < COL;j++)
{
printf("---");
if (j != COL - 1)
{
printf("|");
}
}
printf("\n");
}
}
}
int check(int x, int y, char ch)
{
for (int i = 0;i < ROW;i++)
{
for (int j = 0;j < COL;j++)
{
if (i == x && j == y)
{
if (a[x][y] == ' ')
{
a[x][y] = ch;
return 1;
}
}
}
}
return 0;
}
void Player()
{
while (1)
{
printf("玩家:");
int x = 0, y = 0;
scanf("%d%d", &x, &y);
if (check(x, y, '*') == 1)
{
printf("输入成功!\n");
return;
}
else
{
printf("输入错误,请重试\n\n");
}
}
}
void AI()
{
srand((unsigned int)time(NULL));
printf("电脑:\n");
while (1)
{
int x = rand() % ROW;
int y = rand() % COL;
if (check(x, y, '#') == 1)
{
return;
}
}
}
int Judge(char ch)
{
for (int i = 0;i < ROW;i++)
{
int num = 0;
for (int j = 0;j < COL;j++)
{
if (a[i][j] == ch)
{
num++;
}
}
if (num == 3)
{
return 1;
}
}
for (int j = 0;j < COL;j++)
{
int num = 0;
for (int i = 0;i < ROW;i++)
{
if (a[i][j] == ch)
{
num++;
}
}
if (num == 3)
{
return 1;
}
}
if (a[0][0] == a[1][1] && a[1][1] == a[2][2] && a[2][2] == ch)
{
return 1;
}
if (a[2][0] == a[1][1] && a[1][1] == a[0][2] && a[0][2] == ch)
{
return 1;
}
}
void game()
{
Init();
Print();
while (1)
{
Player();
Print();
if (Judge('*') == 1)
{
printf("玩家胜利\n");
return;
}
AI();
Print();
if (Judge('#') == 1)
{
printf("电脑胜利\n");
return;
}
}
}
【C语言】三子棋--简易版
最新推荐文章于 2022-06-30 23:34:35 发布