//缺陷:1.没有AI
// 2.胜负判断枚举,如果是五子棋(可能性太多)就不能用了
#include<stdio.h>
#include<stdlib.h>
char chessboard[9];
void cls()//清理屏幕的~不然整块的一直往下刷太烦了;
{
system("cls");
}
void initChessBoard()//初始化棋盘。
{
for (int i = 0; i<9; i++)
{
chessboard[i] = '*';
}
for (int i = 0; i<9; i++)
{
printf("%c ", chessboard[i]);
if (i == 2 || i == 5 || i == 8)
{
printf("\n");
}
}
}
int judgeWin();
void doIt()//游戏进行时
{
for (int i = 0; i<9; i++)
{
if (i % 2 == 0)
{
lop:
printf("turn to A:");
int x=0;
scanf_s("%d",&x);
if (chessboard[x] != '*')
{
printf( "error,can't do it\n");
goto lop;
}
switch (x)
{
case 0:chessboard[0] = 'o'; break;
case 1:chessboard[1] = 'o'; break;
case 2:chessboard[2] = 'o'; break;
case 3:chessboard[3] = 'o'; break;
case 4:chessboard[4] = 'o'; break;
case 5:chessboard[5] = 'o'; break;
case 6:chessboard[6] = 'o'; break;
case 7:chessboard[7] = 'o'; break;
case 8:chessboard[8] = 'o'; break;
default:printf("Error,you input out!\n"); break;
}
cls();
for (int i = 0; i<9; i++)
{
printf("%c ", chessboard[i]);
if (i == 2 || i == 5 || i == 8)
{
printf("\n");
}
}
}
if (i % 2 != 0)
{
loop:
printf("turn to B:");
int y=0;
scanf_s("%d",&y);
if (chessboard[y] != '*')
{
printf("error,can't do it\n");
goto loop;
}
switch (y)
{
case 0:chessboard[0] = 'x'; break;
case 1:chessboard[1] = 'x'; break;
case 2:chessboard[2] = 'x'; break;
case 3:chessboard[3] = 'x'; break;
case 4:chessboard[4] = 'x'; break;
case 5:chessboard[5] = 'x'; break;
case 6:chessboard[6] = 'x'; break;
case 7:chessboard[7] = 'x'; break;
case 8:chessboard[8] = 'x'; break;
default:printf("Error,you input out!\n"); break;
}
cls();
for (int i = 0; i<9; i++)
{
printf("%c ", chessboard[i]);
if (i == 2 || i == 5 || i == 8)
{
printf("\n");
}
}
}
if (i >= 9)
{
printf("平手,再来一局吧");
break;
}
int b;
b = judgeWin();
if (b == 0)
{
break;
}
}
}
int judgeWin()//胜负判断。
{
if (chessboard[0] == 'o' && chessboard[4] == 'o' && chessboard[8] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[2] == 'o' && chessboard[4] == 'o' && chessboard[6] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[0] == 'o' && chessboard[1] == 'o' && chessboard[2] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[3] == 'o' && chessboard[4] == 'o' && chessboard[5] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[6] == 'o' && chessboard[7] == 'o' && chessboard[8] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[0] == 'o' && chessboard[3] == 'o' && chessboard[6] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[1] == 'o' && chessboard[4] == 'o' && chessboard[7] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[2] == 'o' && chessboard[5] == 'o' && chessboard[8] == 'o')
{
printf("A win");
getchar();
return 0;
}
if (chessboard[0] == 'x' && chessboard[4] == 'x' && chessboard[8] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[2] == 'x' && chessboard[4] == 'x' && chessboard[6] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[0] == 'x' && chessboard[1] == 'x' && chessboard[2] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[3] == 'x' && chessboard[4] == 'x' && chessboard[5] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[6] == 'x' && chessboard[7] == 'x' && chessboard[8] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[0] == 'x' && chessboard[3] == 'x' && chessboard[6] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[1] == 'x' && chessboard[4] == 'x' && chessboard[7] == 'x')
{
printf("B win");
getchar();
return 0;
}
if (chessboard[2] == 'x' && chessboard[5] == 'x' && chessboard[8] == 'x')
{
printf("B win");
getchar();
return 0;
}
}
int main()
{
printf("0 1 2 \n3 4 5 \n6 7 8 \n");
printf("规则:输入数字0-8,替代位置如上,A-o,B-x井字棋~开始\n ");
printf("\n");
initChessBoard();
doIt();
judgeWin();
}
井字棋C语言控制台版(新手向<( ̄ˇ ̄)/)
最新推荐文章于 2023-12-21 21:34:45 发布