Hey im tryng to make a tic tac toe game but no matter what my game keeps returning "game is a draw" after the first round of turns. any ideas?



Code:
#include <stdio.h>
#include <stdlib.h>
#define ROW 3
#define COL 3


void printboard (char b[ROW][COL]);
void clearboard (char b[ROW][COL]);
void play(char b[ROW][COL], char p);
int checkwinner(char b [ROW][COL]);
char testrow(char b[ROW][COL]);
char testcols(char b[ROW][COL]);
char testdiag(char b[ROW][COL]);
char testdraw(char b[ROW][COL]);

int main(){
	char player;
	int check=0;
	char board[3][3];
	clearboard(board);
	printboard(board);
	while(check==0){
	player='X';
	play(board, player);
	printboard(board);
	player = 'O';
	play (board,player);
	printboard(board);
	check=checkwinner(board);
	}
	return 0;
}

void clearboard (char b[ROW][COL]){
	int row, col;
	for (row=0; row<3; ++row){
		for (col=0; col<3; ++col){
			b[row][col] = '-';
		}
	}

}

void printboard(char b[ROW][COL]){
	int row, col;
	printf("\t0\t1\t2\n");
	for (row=0; row<3; ++row){
		printf("%i\t", row);
		for (col=0; col<3; ++col){
			printf ("%c\t",b[row][col]);
		}
		printf("\n");
	}
	
}
	
void play(char b[ROW][COL], char p){
	int x, y;
	printf("Player %c, please enter a row and column between 0 and 2:\n", p);
	scanf("%i %i", &y, &x);
	b[y][x]= p;
}
	
int checkwinner(char b[ROW][COL]){
	if (testrow(b)!=' '){
		printf("Player %c is the winner", testrow(b));
		return 1;
		}
	else if (testcols(b)!=' '){
		printf("Player %c is the winner", testcols(b));
		return 1;
		}
	else if (testdiag(b)!=' '){
		printf("Player %c is the winner", testdiag(b));
		return 1;
		}
	else if (testdraw(b)!=' '){
		printf("The Game is a Draw");
		return 1;
		}
	else{
	return 0;
	}}

char testrow(char b[ROW][COL]){
	int r=0;
	char winner='n';
	for (r=0;r<3; ++r){
	if (b[r][0]==b[r][1]&&b[r][0]==b[r][2]){
		return (b[r][0]);
	}//no else- do nothing
	}
	return ' ';
}

char testcols(char b[ROW][COL]){
	int c=0;
	for (c=0;c<3;++c){
		if (b[0][c]==b[1][c]&& b[0][c]==b[2][c]){
			return (b[0][c]);
			//no else- do nothing
		}
	}
	return ' ';
}

char testdiag(char b[ROW][COL]){
	if (b[0][0]==b[1][1]&&b[0][0]==b[2][2]){
		return (b[0][0]);
	}
	if (b[0][2]==b[1][1]&&b[0][2]==b[2][0]){
		return (b[0][2]);
		}
	return ' ';
}

char testdraw(char b[ROW][COL]){
	int a,b;	
	for (a=0; a<3; ++a){
		for (b=0;b<3;++b){
		if (b[a][b]=='-'){
		return ' ';
		}
		
		if (b[a][b]=='-'){
		return ' ';
		}
		if (a*b==9){
		return 'draw';
		}}}
		return ' ';}