#include "ttt.h"

void printboard(int board[BOARD_WIDTH][BOARD_HEIGHT])
{
int x = 0, y = 0;

	printf("   1 2 3\n");
	printf("  +-+-+-+\n");
	for (y = 0; y<BOARD_HEIGHT; y++)
	{
		printf("%d |", (y+1));
		for (x = 0; x<BOARD_WIDTH; x++)
		{
			if (board[x][y] == 0) {printf(" ");}
			else if (board[x][y] == CHAR_X) {printf("X");}
			else if (board[x][y] == CHAR_O) {printf("O");}
			printf("|");
		}
		printf("\n");
		printf("  +-+-+-+\n");
	}
}

int checkwin(int board[BOARD_WIDTH][BOARD_HEIGHT])
{
	int x, y;
	if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != 0) {return board[0][0];}
	if (board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[2][0] != 0) {return board[2][0];}
	for (x = 0; x < BOARD_WIDTH; x++)
	{
		if (board[x][0] == board[x][1] && board[x][1] == board[x][2] && board[x][0] != 0) {return board[x][0];}
	}
	for (y = 0; y < BOARD_HEIGHT; y++)
	{
		if (board[0][y] == board[1][y] && board[1][y] == board[2][y] && board[2][y] != 0) {return board[2][y];}
	}

	for (x = 0; x < BOARD_WIDTH; x++)
	{
		for (y = 0; y < BOARD_HEIGHT; y++)
		{
			if (board[x][y] == 0) {return 0;}
		}
	}

	return -1;
}

location makemove(int board[BOARD_WIDTH][BOARD_HEIGHT])
{
	int rand_num;
	location tmp;
	TryAgain:
	tmp.x = -1;
	tmp.y = -1;
	while (tmp.x < 0 || tmp.x > 2)
	{
		tmp.x = int(3.0 * rand()/(RAND_MAX+1.0));
	}
	while (tmp.y < 0 || tmp.y > 2)
	{
		tmp.y = int(3.0 * rand()/(RAND_MAX+1.0));
	}
	if (board[tmp.x][tmp.y]!=0) {goto TryAgain;}
	return tmp;
}

