I'm working on a program that creates a 2 player game of tic tac toe. I know there are mistakes in that the functions don't do exactly what I want them to do, but my question is about the last line of the last funtion, showover. It keeps coming up 'error: expected declaration or statement at end of input' when I run the debugger and I can't work out why. As you can probably see I am not that adept at programming, but any help would be appreciated.
Code:
#include <stdio.h>
#include <stdlib.h>
char display(char db[][3]);
int getrow(char gr_plyr);
int getcol(char gc_plyr);
int validmove(char vb[][3],int vr, int vc);
void update(char ub[][3],char uplyr, int ur, int uc);
int boardfull(char bfb[][3]);
char showover(char sb[][3]);
int main(void)
{
char board[3][3];
int row,col;
char player ='X';
for(row=0; row<3; row++){
for(col=0; col<3; col++) board[row][col]='-';
do {
display(board);
if(player=='X') player='O';
else player='X';
do {
row = getrow(player);
col = getcol(player);
} while(!validmove(board,row,col));
update(board,player,row,col);
} while(!boardfull(board));
char showover(board);
return 0;
}
char display(char db[][3])
{
int c;
for (c=0;c<3;c++) printf("%c",db[0][c]);
printf("\n");
for (c=0;c<3;c++) printf("%c",db[1][c]);
printf("\n");
for (c=0;c<3;c++) printf("%c",db[2][c]);
}
int getrow(char gr_plyr)
{
int r;
printf("Player %c choose your row: ",gr_plyr);
scanf("%d",&r);
return r;
}
int getcol(char gc_plyr)
{
int c;
printf("Player %c choose your column: ", gc_plyr);
scanf("%d",&c);
return c;
}
int validmove(char vb[][3],int vr,int vc)
{
if ((vr>0)&(vr<2)&(vc>0)&(vc<2)&(vb[vr][vc]=='-')) return 0;
else return 1;
}
void update(char ub[][3],char uplayer,int ur,int uc)
{
ub[ur][uc]=uplayer;
}
int boardfull(char bfb[][3])
{
int row, col;
for (row=0;row<3;row++)
for (col=0;col<3;col++);
if (bfb[row][col]!='-') return 1;
else return 0;
}
char showover(char sb[][3])
{
int c;
for (c=0;c<3;c++) printf("%c",sb[0][c]);
printf("\n");
for (c=0;c<3;c++) printf("%c",sb[1][c]);
printf("\n");
for (c=0;c<3;c++) printf("%c",sb[2][c]);
printf("\nGAME OVER");
return 0;
}