Example #1
0
def play(conn, game_id, move, trans=None):
    player = conn.data["user"]
    game = player.getGameById(game_id)

    if game is not None:
        if game._moves.turn() == "black":
            player_to_play = game._config.black
        else:
            player_to_play = game._config.white

        player_name = player.db_tuple.name

        if player_name in [game._config.black, game._config.white]:
            if player_name == player_to_play:

                def callback(valid):
                    if valid:
                        response = GameOk.ok_move()
                    else:
                        response = GameError.invalid_move()
                    conn.send(response, trans)

                game.play(move, callback)
                response = None
            else:
                response = GameError.not_your_turn()
        else:
            response = GameError.not_your_game()
    else:
        response = GameError.user_doesnt_know_game_id()

    if response is not None:
        conn.send(response, trans)
Example #2
0
def resign(conn, game_id, trans=None):
    player = conn.data["user"]
    game = player.getGameById(game_id)

    if game is not None:
        player_name = player.db_tuple.name

        if player_name in [game._config.black, game._config.white]:
            if game.resign(player):
                response = GameOk.ok_resign()
            else:
                response = GameError.error_resign()
        else:
            response = GameError.not_your_game()
    else:
        response = GameError.user_doesnt_know_game_id()

    conn.send(response, trans)
Example #3
0
 def game_init_done_callback():
     if game.id is None:
         conn.send(GameError.init_failed(), trans)
     else:
         if start_now:
             sender.enterGame(game)
             if username != "GNUGo":
                 user.enterGame(game)
             room = sender.rooms.get(roomname)
             room.add_game(conn, white, black, size, game.id)
         else:
             user.callIntoGame(sender, game.id, call_into_callback)
Example #4
0
def watch_game(conn, game_id, trans=None):
    user = conn.data['user']
    game = Game.getGameById(game_id)

    # TODO: what if game is not in memory, but in the database?
    
    #if user.getGameById(game_id) is None:
    if game is not None:
        user.enterGame(game)
        response = GameOk.you_can_watch()
    else:
        response = GameError.game_not_found()
    #else:
    #    response = GameOk.you_are_already_in_the_game()
        
    conn.send(response, trans)
Example #5
0
 def callback(valid):
     if valid:
         response = GameOk.ok_move()
     else:
         response = GameError.invalid_move()
     conn.send(response, trans)