def legal_moves(history, player_is_white): """"Generates a list of legal moves. Missing castling, en-passant.""" board = ai.to_array(history)[-1] moves = list(ai.legal_moves(board, player_is_white)) assert type(moves[0][0]) == array moves = [ai.from_array(move) for move, _score in moves] return moves
def main(given_history, _, __): history = ai.to_array(given_history) player_is_white = len(history) % 2 == 1 current_board = history[-1] best_score = -10**10 for move, diff in ai.legal_moves(current_board, player_is_white): score = ai.evaluate(move) if not player_is_white: score = -score if score > best_score: best_score = score best_move = move print(f'search depth: 1') print(f'expected score: {best_score}') return ai.from_array(best_move)
def main(history, _, __): possible_moves = list( ai.legal_moves(ai.to_array(history[-1]), len(history) % 2)) move = random.choice(possible_moves)[0] return ai.from_array(move)