예제 #1
0
def play():
    req = json.load(request.body)
    print(req)
    state = req['current_state']
    board_array = state['game_board']
    board_array[req['move']] = 1 if state['to_play'] == 'player1' else -1
    to_play_id = -state['to_play_id']
    new_game_state = GameState(board_array, to_play_id)
    to_play = 'player2' if state['to_play'] == 'player1' else 'player1'
    rv = {
        'player1': state['player1'],
        'player2': state['player2'],
        'game_board': new_game_state.board,
        'endgame': new_game_state.isEndGame,
        'to_play': to_play,
        'legal_moves': new_game_state._allowedActions(),
        'to_play_id': to_play_id
    }
    if rv[to_play] == 'assisted':
        _, preds, moves = ai_player.get_preds(new_game_state)
        print(preds)
        print(list(np.argpartition(preds, -3)[-3:]))
        rv['legal_moves'] = list(np.argpartition(preds, -3)[-3:])

    return json.dumps(rv)
예제 #2
0
def get_computer_move():
    state = json.load(request.body)
    print(state)
    board_array = state['game_board']
    to_play_id = state['to_play_id']
    current_state = GameState(board_array, to_play_id)
    _, preds, moves = ai_player.get_preds(current_state)
    computer_move = np.argmax(preds)
    board_array[computer_move] = to_play_id
    new_game_state = GameState(board_array, -to_play_id)
    to_play = 'player2' if state['to_play'] == 'player1' else 'player1'
    rv = {
        'player1': state['player1'],
        'player2': state['player2'],
        'game_board': new_game_state.board,
        'endgame': new_game_state.isEndGame,
        'to_play': to_play,
        'legal_moves': new_game_state._allowedActions(),
        'to_play_id': -to_play_id
    }
    if rv[to_play] == 'assisted':
        _, preds, moves = ai_player.get_preds(new_game_state)
        print(preds)
        print(list(np.argpartition(preds, -3)[-3:]))
        rv['legal_moves'] = list(np.argpartition(preds, -3)[-3:])

    return json.dumps(rv)
예제 #3
0
def new_game(player1, player2):
    '''Handles name listing'''
    response.headers['Content-Type'] = 'application/json'
    response.headers['Cache-Control'] = 'no-cache'
    new_game_board_array = [
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    ]
    new_game_state = GameState(new_game_board_array, 1)
    rv = {
        'player1': player1,
        'player2': player2,
        'game_board': new_game_state.board,
        'to_play': 'player1',
        'legal_moves': new_game_state._allowedActions()
    }
    if player1 == 'assisted':
        _, preds, moves = ai_player.get_preds(new_game_state)
        rv['legal_moves'] = list(np.argpartition(preds, -3)[-3:])
    return json.dumps(rv)