tic-tac-toe游戏c语言,Tic-Tac-Toe(井字棋)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

bool PlayerTurn()

{ //选手的回合

&nbsp&nbsp&nbsp int x, y;

&nbsp&nbsp&nbsp Show();

&nbsp&nbsp&nbsp do scanf("%d%d", &x, &y);

&nbsp&nbsp&nbsp while (x = 3 || y <0 || y >= 3 || a[y][x]);

&nbsp&nbsp&nbsp a[y][x] = 1; ++cnt;

&nbsp&nbsp&nbsp putchar('\n');

&nbsp&nbsp&nbsp Show();

&nbsp&nbsp&nbsp if (Check(1, x, y))

&nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp puts("You win!\n");

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp return true;

&nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp return false;

}

bool ComputerTurn()

{ //计算机的回合

&nbsp&nbsp&nbsp int pos;

&nbsp&nbsp&nbsp SearchMove(2, -WIN, WIN, pos, -1);

&nbsp&nbsp&nbsp a[pos/3][pos%3] = 2; ++cnt;

&nbsp&nbsp&nbsp Show();

&nbsp&nbsp&nbsp if (Check(2, pos%3, pos/3))

&nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp puts("You lose!\n");

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp return true;

&nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp return false;

}

int main()

{

&nbsp&nbsp&nbsp int option;

&nbsp&nbsp&nbsp for(;;)

&nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp //显示菜单

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp puts("0 You first\n1 Computer first\n2 Exit\n");

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp do scanf("%d", &option);

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp while (option = 3);

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (option == 2) break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp putchar('\n');

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp //清空棋盘

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp for (int i = 0; i 

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp for (int j = 0; j 

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp a[i][j] = EMPTY;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp cnt = 0;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp //游戏过程

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (!option)

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp for(;;)

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (PlayerTurn()) break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (cnt == 9)

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp puts("Draw!\n");

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (ComputerTurn()) break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp else for(;;)

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (ComputerTurn()) break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (cnt == 9)

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp {

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp puts("Draw!\n");

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp if (PlayerTurn()) break;

&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp }

&nbsp&nbsp&nbsp return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值