Esempio n. 1
0
    def test_players_db(self):
        """ Testing player functions
        player.insert_player_into_db
        player.get_players_from_db
        player.get_player_from_db_by_name
        player.update_player_by_name
        """ 
        clear_tables(self.db)

        # test empty players
        test_players = player.get_players_from_db(GAME_ID1, self.db)
        assert (test_players == [])
        test_names = player.get_player_names_from_db(GAME_ID1, self.db)
        assert (test_names == [])

        # insert player
        test_player = player.Player (*TEST_PLAYER_VALUES1)
        player.insert_player_into_db(test_player, self.db)
        db_player = player.get_players_from_db(test_player.game_id, self.db)[0]
        assert db_player == test_player
        # get player
        db_player2 = player.get_player_from_db_by_name(db_player.name, db_player.game_id, self.db)
        assert(db_player2 == db_player)
        # update player
        cur_id = db_player.id_num
        db_player.id_num = cur_id + 1
        player.update_player_by_name(db_player, self.db)
        # get player
        new_db_player = player.get_player_from_db_by_name(
            db_player.name, db_player.game_id, self.db)
        assert(new_db_player.id_num == db_player.id_num)
Esempio n. 2
0
def initialize_game(game_id, db):
    """ input: game_id String, db Database
    """
    # initialize players
    players = player.get_players_from_db(game_id, db)
    random.seed(2)
    random.shuffle(players)
    for i, p in enumerate(players):
        p.id_num = i
        p.p_left_name = _get_left_item(players,i).name
        p.p_right_name = _get_right_item(players,i).name
        player.update_player_by_name(p, db)
    # initialize dice
    dice.insert_dice_into_db(dice.initialize_dice(len(players), game_id), db)
    status.set_round_in_db(0, game_id, db)
Esempio n. 3
0
def set_relationship(rel1_role, rel1_option, rel1_player,
                     rel2_role, rel2_option, rel2_player,
                     cur_player_name, pset, game_id, db):
    """
    Updates the database - sets the relationships for one of the neighbor pairs
    """
    rel_indices = playset.get_relationship_indices(rel1_role, rel2_role, rel1_option, rel2_option, pset)
    if not rel_indices:
        return ERROR_INVALID_RELATIONSHIP_VALUES

    # check if dice are ok
    game_dice = dice.get_dice_from_db(game_id, db)
    if game_dice.dice_dic[rel_indices[1]+1] <= 0:
        return ERROR_NOT_ENOUGH_DICE
    p1 = player.get_player_from_db_by_name(rel1_player, game_id, db)
    p2 = player.get_player_from_db_by_name(rel2_player, game_id, db)
    if not p1 or not p2:
        return ERROR_INVALID_PLAYERS
    if not rel1_player == cur_player_name and not rel2_player == cur_player_name:
        return ERROR_CURRENT_PLAYER_NOT_IN_RELATIONSHIP
    if rel1_player == rel2_player:
        return ERROR_PLAYERS_MUST_BE_DIFFERENT
    if p1.p_left_name == p2.name:
        # neighor is to the left
        set_left_relationship(rel1_role, rel1_option,
                              playset.get_relationship_id_from_indices(
                                  rel_indices, flip_a_b=False), p1, db)
        set_right_relationship(rel2_role, rel2_option, 
                               playset.get_relationship_id_from_indices(
                                   rel_indices, flip_a_b=True), p2, db)
    elif p1.p_right_name == p2.name:
        # neighbor is to the right
        set_right_relationship(rel1_role, rel1_option,
                              playset.get_relationship_id_from_indices(
                                  rel_indices, flip_a_b=False), p1, db)
        set_left_relationship(rel2_role, rel2_option,
                               playset.get_relationship_id_from_indices(
                                   rel_indices, flip_a_b=True), p2, db)
    player.update_player_by_name(p1, db)
    player.update_player_by_name(p2, db)
    return NO_ERROR
Esempio n. 4
0
def set_right_relationship(rel_role, rel_option, rel_id, player_obj,db):
    player_obj.rel_r_role = rel_role
    player_obj.rel_r_option = rel_option
    player_obj.rel_r_id = rel_id
    player.update_player_by_name(player_obj, db)