int game_end(Board board) { for (int x = 0; x < board.dimx; x++) { if (check_row(board,x)) return 1; } for (int y = 0; y < board.dimy; y++) { if (check_column(board,y)) return 1; } if (check_diagonals(board)) return 1; if (board.used_spaces == board.dimx * board.dimy) return 2; return 0; }
double Board_2::check_board (const bool is_turn, const char player_piece) const { bool is_limit = false; double utilitly = 0; double temp = 0; temp = check_columns(is_turn,player_piece,used_columns,columns,rows,r,board,is_limit); if (is_limit) return temp; // if a killer move was found return that killer move else utilitly += temp; temp = check_rows(is_turn, player_piece, used_rows, columns, rows, r, board, is_limit); if (is_limit) return temp; else utilitly += temp; temp = check_diagonals(is_turn,player_piece, columns, rows, r, board, is_limit); if (is_limit) return temp; else utilitly += temp; return utilitly; }