0
点赞
收藏
分享

微信扫一扫

C4(1) 三字棋代码实现

设计

game()
{
初始化;
打印;
下前四步
从第五步开始判断输赢
9步没产生输赢是平局

}

代码

int judge(char board[ROW][COL], int row, int col, int p)
{
	int x = p  / row;
	int y = p % row;
	if ((board[x][0] == board[x][1] && board[x][0] == board[x][2]) || (board[0][y] == board[1][y] && board[0][y] == board[2][y]))	return 1;
	if ((x+y)%2)
		if (((board[0][0] == board[1][1] && board[2][2] == board[1][1])) || ((board[0][2] == board[1][1] && board[2][0] == board[1][1]))) return 1;
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1


#include<stdio.h>
#include<string.h>
#include "game.h"

void menu()
{
	printf("\n....................\n");
	printf("......0.exit........\n");
	printf("......1.play........\n");
	printf("....................\n");
	printf("请选择(0/1)>>>");
}

void game()
{
	char board[ROW][COL] = { 0 };
	InitBoard(board, ROW, COL);
	PrintBoard(board, ROW, COL);
	
	PlayerMove(board, ROW, COL);
	ComputerMove(board, ROW, COL);
	PrintBoard(board, ROW, COL);	
	PlayerMove(board, ROW, COL);
	ComputerMove(board, ROW, COL);
	PrintBoard(board, ROW, COL);

	int i=5;
	while (i)
	{
		if (i % 2)
		{
			int c1 = PlayerMove(board, ROW, COL);
			PrintBoard(board, ROW, COL);
			// 赢了返回1,打印棋盘,输了,什么都不做
			if (judge(board, ROW, COL, c1))
			{
				printf("You win!!!\n");
				break;
			}
		}
		else
		{
			int c2 = ComputerMove(board, ROW, COL);
			PrintBoard(board, ROW, COL);
			if (judge(board, ROW, COL, c2))
			{
				printf("Computer win ,fool player.\n");
				break;
			}
		}
		i--;
	}
	if (i == 0)printf("平局\n");

	
}

void test()
{
	int n = 0;
	do
	{
		menu();
		scanf("%d", &n);
		switch (n)
		{
		case 0:
		{
			printf("Exit.\n");
			break;
		}
		case 1:
		{
			printf("Game strat.\n");
			game();
			break;
		}
		default:
		{
			printf("error,Please input (0/1)\n");
			break;
		}
		}
	} while (n);
}

int main()
{
	srand((unsigned int)time(NULL));
	test();
	return 0;
}
举报

相关推荐

0 条评论