Follow coding standard

This commit is contained in:
rexy712 2020-08-14 20:45:50 -07:00
parent 1db219f5f1
commit acf8648b64

View File

@ -20,30 +20,30 @@ struct game_state {
char board[TILE_COUNT]; char board[TILE_COUNT];
}; };
int check_win_condition(game_state * gs, char player) { int check_win_condition(const game_state& gs, char player) {
int i; int i;
for( i = 0 ; i < 3 ; i++){ for( i = 0 ; i < 3 ; i++){
//rows //rows
if(gs->board[(i*3)]==player && gs->board[(i*3)+1]==player && gs->board[(i*3)+2]==player) if(gs.board[(i*3)]==player && gs.board[(i*3)+1]==player && gs.board[(i*3)+2]==player)
return 1; return 1;
//column //column
if(gs->board[i]==player && gs->board[i+3]==player && gs->board[i+6]==player) if(gs.board[i]==player && gs.board[i+3]==player && gs.board[i+6]==player)
return 1; return 1;
} }
if(gs->board[0] == player && gs->board[4] == player && gs->board[8] == player) if(gs.board[0] == player && gs.board[4] == player && gs.board[8] == player)
return 1; return 1;
if(gs->board[2] == player && gs->board[4] == player && gs->board[6] == player) if(gs.board[2] == player && gs.board[4] == player && gs.board[6] == player)
return 1; return 1;
return 0; return 0;
} }
void display_game_state(game_state * gs){ void display_game_state(const game_state& gs){
printf("turn %i:\n",gs->turn); printf("turn %i:\n", gs.turn);
for(int i = 0; i < 3; i++){ for(int i = 0; i < 3; i++){
for(int j = 0; j < 3 ; j++){ for(int j = 0; j < 3 ; j++){
if(gs->board[(i*3)+j]) if(gs.board[(i*3)+j])
printf("%c", gs->board[(i*3)+j]); printf("%c", gs.board[(i*3)+j]);
else else
printf("_"); printf("_");
} }
@ -51,40 +51,40 @@ void display_game_state(game_state * gs){
} }
} }
void player_turn(game_state * gs, char player, int input) void player_turn(game_state& gs, char player, int input)
{ {
if(input > TILE_COUNT && input < 0) if(input > TILE_COUNT && input < 0)
fprintf(stderr,"ERR: player input not in range."); fprintf(stderr,"ERR: player input not in range.");
if(!gs->board[input]) if(!gs.board[input])
gs->board[input] = player; gs.board[input] = player;
if(check_win_condition(gs,player)){ if(check_win_condition(gs, player)){
printf("player %c wins!\n", player); printf("player %c wins!\n", player);
gs->turn = -1; gs.turn = -1;
} }
} }
void game_turn(game_state * gs,int player_input){ void game_turn(game_state& gs,int player_input){
gs->turn++; gs.turn++;
player_turn(gs, 'O', player_input); player_turn(gs, 'O', player_input);
display_game_state(gs); display_game_state(gs);
if(gs->turn == -1) if(gs.turn == -1)
return; return;
player_turn(gs, 'X', rand()%TILE_COUNT); player_turn(gs, 'X', rand()%TILE_COUNT);
display_game_state(gs); display_game_state(gs);
} }
int exists_empty_tile(game_state * gs){ int exists_empty_tile(const game_state& gs){
int i; int i;
for( i = 0; i < TILE_COUNT ; i++) for( i = 0; i < TILE_COUNT ; i++)
if(!gs->board[i]) if(!gs.board[i])
return 1; return 1;
return 0; return 0;
} }
int main(){ int main(){
srand(time(NULL)); srand(time(NULL));
game_state gs = {0,0}; game_state gs = {};
while(exists_empty_tile(&gs) && gs.turn != -1){ while(exists_empty_tile(gs) && gs.turn != -1){
game_turn(&gs, get_player_input()); game_turn(gs, get_player_input());
} }
} }