Exemple #1
0
def create_game(pid, sesid, name, esm, egp, money, fabrics_1, fabrics_2,
                max_players):
    game.create_game(pid, esm, egp, money, fabrics_1, fabrics_2, max_players,
                     name)
    join_room(db_connector.get_game_id(pid), sid=sesid)
    db_connector.inc_game_progress(db_connector.get_game_id(pid))
    return db_connector.get_game_pid(pid).get_json()
Exemple #2
0
def test_martingale_lucky():
    # black, red, red,red, black, black
    rng = NonRandom([2, 5, 9, 12, 11, 10])
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(100)
    # win
    game.cycle(player)
    assert player.stake == 101
    game.cycle(player)
    # loose, bet 1
    assert player.stake == 100
    game.cycle(player)
    # loose, bet 2
    assert player.stake == 98
    game.cycle(player)
    # loose, bet 4
    assert player.stake == 94
    game.cycle(player)
    # win, gain 8, will bet 1
    assert player.stake == 102
    game.cycle(player)
    # win, gain 2, will bet 1
    assert player.stake == 103
Exemple #3
0
def test_martingale_lucky():
    # black, red, red,red, black, black
    rng = NonRandom([2, 5, 9, 12, 11, 10])
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(100)
    # win
    game.cycle(player)
    assert player.stake == 101
    game.cycle(player)
    # loose, bet 1
    assert player.stake == 100
    game.cycle(player)
    # loose, bet 2
    assert player.stake == 98
    game.cycle(player)
    # loose, bet 4
    assert player.stake == 94
    game.cycle(player)
    # win, gain 8, will bet 1
    assert player.stake == 102
    game.cycle(player)
    # win, gain 2, will bet 1
    assert player.stake == 103
Exemple #4
0
def get_game_info(game_url):
    html = get_html(game_url)
    soup = BeautifulSoup(html, 'lxml')
    table = soup.find('table', class_='main-game-table')

    if table != None:
        citizen = []
        mafia = []

        game_result = soup\
            .find('div', class_='col-right')\
            .find('dd')\
            .text\
            .strip()

        for i, row in enumerate(table.find_all('tr', class_='col1'), 1):
            nick = row.find('td', class_='col2').text.strip()
            role = row.find('td', class_='col5').text.strip()

            if role == "":
                citizen.append((i, nick))
            elif role == "М":
                mafia.append((i, nick))
            elif role == "Д":
                don = [(i, nick)]
            elif role == "Ш":
                sheriff = [(i, nick)]

        return G.create_game(game_result, citizen, mafia, don, sheriff)
def test_player1236():
    """ Helper functiosn for testing Player1236

    """

    data = [
        ([1, 1, 1, 1], 16),
        ([1, 1, 1, 2], 18),
        ([1, 1, 2, 1], 16),
        ([1, 1, 2, 2], 22),
        ([1, 2, 1, 1], 16),
        ([1, 2, 1, 2], 18),
        ([1, 2, 2, 1], 21),
        ([1, 2, 2, 2], 25),
        ([2, 1, 1, 1], 16),
        ([2, 1, 1, 2], 18),
        ([2, 1, 2, 1], 16),
        ([2, 1, 2, 2], 22),
        ([2, 2, 1, 1], 21),
        ([2, 2, 1, 2], 23),
        ([2, 2, 2, 1], 20),
        ([2, 2, 2, 2], 32),
    ]
    for (sequence, expected_stake) in data:
        rng = NonRandom(sequence)
        game = create_game(rng=rng)
        player = Player1236(game.table)
        player.set_stake(20)
        for i in range(len(sequence)):
            game.cycle(player)
        assert player.stake == expected_stake
def test_player1236():
    """ Helper functiosn for testing Player1236

    """

    data = [
        ([1, 1, 1, 1], 16),
        ([1, 1, 1, 2], 18),
        ([1, 1, 2, 1], 16),
        ([1, 1, 2, 2], 22),
        ([1, 2, 1, 1], 16),
        ([1, 2, 1, 2], 18),
        ([1, 2, 2, 1], 21),
        ([1, 2, 2, 2], 25),
        ([2, 1, 1, 1], 16),
        ([2, 1, 1, 2], 18),
        ([2, 1, 2, 1], 16),
        ([2, 1, 2, 2], 22),
        ([2, 2, 1, 1], 21),
        ([2, 2, 1, 2], 23),
        ([2, 2, 2, 1], 20),
        ([2, 2, 2, 2], 32),
    ]
    for (sequence, expected_stake) in data:
        rng = NonRandom(sequence)
        game = create_game(rng=rng)
        player= Player1236(game.table)
        player.set_stake(20)
        for i in range(len(sequence)):
            game.cycle(player)
        assert player.stake == expected_stake
Exemple #7
0
    def reset():
        if g.auth:
            if g.is_admin:
                try:
                    current_game = game.Game.load(1)
                except KeyError:
                    print "NEW GAME"
                    game.create_game()
                    current_game = game.Game.load(1)

                new_roller = current_game.reset_game(new_roller=True)
                send = payload(new_roller)
                current_game.save()
                print send
                if send == "ok":
                    return "reset the game"
                return "derp"
Exemple #8
0
    def reset():
        if g.auth:
            if g.is_admin:
                try:
                    current_game = game.Game.load(1)
                except KeyError:
                    print "NEW GAME"
                    game.create_game()
                    current_game = game.Game.load(1)

                new_roller = current_game.reset_game(new_roller=True)
                send = payload(new_roller)
                current_game.save()
                print send
                if send == "ok":
                    return "reset the game"
                return "derp"
Exemple #9
0
def test_seven_red_number_respect_duration():
    rng = NonRandom([2] * 10)
    game = create_game(rng=rng)
    player = SevenReds(game.table)
    player.set_duration(4)
    for i in range(7):
        game.cycle(player)
    assert player.playing() is False
Exemple #10
0
def test_seven_red_number_respect_duration():
    rng = NonRandom([2] * 10)
    game = create_game(rng=rng)
    player = SevenReds(game.table)
    player.set_duration(4)
    for i in range(7):
        game.cycle(player)
    assert player.playing() is False
def new_game(configuration=False):
    default = {"default": "start", "active": "true"}
    if not configuration:
        configuration = default
    game = create_game(type="voice")
    print "using configuration: ", configuration
    game.konf.use_dict(configuration)
    game = add_story_to_game(game)
    return game
Exemple #12
0
def new_game(configuration=False):
    default = {'default': 'start', 'active': 'true'}
    if not configuration:
        configuration = default
    game = create_game(type='sms')
    print "using configuration: ", configuration
    game.konf.use_dict(configuration)
    game = add_story_to_game(game)
    return game
Exemple #13
0
def new_game(configuration=False):
    default = {'default': 'start',
               'active': 'true'}
    if not configuration:
        configuration = default
    game = create_game(type='sms')
    print "using configuration: ", configuration
    game.konf.use_dict(configuration)
    game = add_story_to_game(game)
    return game
Exemple #14
0
def test_player_in_hurry():
    # Always black
    rng = NonRandom([2] * 4)
    game = create_game(rng=rng)
    player = Passenger57(game.table)
    player.set_duration(3)
    player.set_stake(10)

    for i in range(4):
        game.cycle(player)
    assert player.playing() is False
    assert player.stake == 40
Exemple #15
0
def test_player_in_hurry():
    # Always black
    rng = NonRandom([2] * 4)
    game = create_game(rng=rng)
    player = Passenger57(game.table)
    player.set_duration(3)
    player.set_stake(10)

    for i in range(4):
        game.cycle(player)
    assert player.playing() is False
    assert player.stake == 40
Exemple #16
0
def test_martingale_cant_make_huge_bets():
    # Always red
    rng = NonRandom([1] * 4)
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(32)
    player.bet_amount = 4

    for i in range(4):
        game.cycle(player)

    assert player.playing() is False
Exemple #17
0
def test_martingale_cant_make_huge_bets():
    # Always red
    rng = NonRandom([1] * 4)
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(32)
    player.bet_amount = 4

    for i in range(4):
        game.cycle(player)

    assert player.playing() is False
Exemple #18
0
def test_martingale_loose_all():
    # Always red
    rng = NonRandom([1] * 4)
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(8)

    for i in range(4):
        game.cycle(player)

    assert player.stake > 0
    assert player.playing() is False
Exemple #19
0
def test_martingale_loose_all():
    # Always red
    rng = NonRandom([1] * 4)
    game = create_game(rng=rng)

    player = Martingale(game.table)
    player.set_stake(8)

    for i in range(4):
        game.cycle(player)

    assert player.stake > 0
    assert player.playing() is False
Exemple #20
0
def test_seven_red_double_when_loose():
    # 10 Reds, 1 Black
    rng = NonRandom([1] * 10 + [2])
    game = create_game(rng=rng)
    player = SevenReds(game.table)

    for i in range(7):
        game.cycle(player)
    assert player.stake == 10
    game.cycle(player)
    assert player.stake == 9
    game.cycle(player)
    assert player.stake == 7
    game.cycle(player)
    assert player.stake == 3
Exemple #21
0
def test_seven_red_double_when_loose():
    # 10 Reds, 1 Black
    rng = NonRandom([1] * 10 + [2])
    game = create_game(rng=rng)
    player = SevenReds(game.table)

    for i in range(7):
        game.cycle(player)
    assert player.stake == 10
    game.cycle(player)
    assert player.stake == 9
    game.cycle(player)
    assert player.stake == 7
    game.cycle(player)
    assert player.stake == 3
Exemple #22
0
def test_cautious_martingale():
    class CautiousMartingale(Martingale):
        def wants_to_play(self):
            return self.stake <= 102

    # Always black
    rng = NonRandom([2] * 4)
    game = create_game(rng=rng)
    player = CautiousMartingale(game.table)
    player.set_stake(100)

    for i in range(4):
        game.cycle(player)

    assert player.playing() is False
    assert player.stake == 103
Exemple #23
0
def test_cautious_martingale():
    class CautiousMartingale(Martingale):
        def wants_to_play(self):
            return self.stake <= 102

    # Always black
    rng = NonRandom([2] * 4)
    game = create_game(rng=rng)
    player = CautiousMartingale(game.table)
    player.set_stake(100)

    for i in range(4):
        game.cycle(player)

    assert player.playing() is False
    assert player.stake == 103
Exemple #24
0
def play(ctx, ntimes, player, sequence, shape):

    verbose = ctx.obj['VERBOSE']

    # Cria o jogo
    game = create_game(shape, verbose)

    # Cria os jogadores
    game.players = create_players(game, player, sequence, verbose)

    # Realiza N partidas
    game.play(ntimes)

    # Cria um histogram e um arquiv opdf com a estatisitica de todos os jogos
    game.show_statistic()

    # Finaliza o jogo
    game.deinit()
Exemple #25
0
def test_seven_red_waits():
    # 7 Reds, 1 Black, 2 Red
    rng = NonRandom([1] * 7 + [2] + [1] * 9)
    game = create_game(rng=rng)
    player = SevenReds(game.table)

    for i in range(9):
        game.cycle(player)

    # Bet 1 and gain 1
    assert player.stake == 11

    game.cycle(player)
    assert player.stake == 11

    # Finish the seven series:
    for i in range(5):
        game.cycle(player)

    # Re-bet 1, loose and  bet 2
    for i in range(2):
        game.cycle(player)

    assert player.stake == 8
Exemple #26
0
def test_seven_red_waits():
    # 7 Reds, 1 Black, 2 Red
    rng = NonRandom([1] * 7 + [2] + [1] * 9)
    game = create_game(rng=rng)
    player = SevenReds(game.table)

    for i in range(9):
        game.cycle(player)

    # Bet 1 and gain 1
    assert player.stake == 11

    game.cycle(player)
    assert player.stake == 11

    # Finish the seven series:
    for i in range(5):
        game.cycle(player)

    # Re-bet 1, loose and  bet 2
    for i in range(2):
        game.cycle(player)

    assert player.stake == 8
Exemple #27
0
def newgame():
    playermgmt.ensure_session_vars(auth)

    if "copy" in request.vars:
        # copy a previous game
        try:
            game_id = game.create_game(copyfrom=int(request.vars["copy"]))
            redirect(URL("ingame", "ingame", vars=dict(game_id=game_id)))
        except (ValueError, game.NewGameException):
            pass

    formgame = SQLFORM.factory(
        Field("gametype", requires=IS_IN_SET(game.GAMETYPES, zero=None)),
        Field("players", requires=IS_IN_SET(["2", "3", "4", "5", "6"], zero=None)),
        Field("format", requires=IS_IN_SET(game.FORMATS, zero=None)),
        Field("tags"),
        Field("player1"),
        Field("player2"),
        Field("player3"),
        Field("player4"),
        Field("player5"),
        Field("player6"),
        formstyle="divs",
        submit_button="Start",
    )

    if formgame.process().accepted:
        try:
            playeramount = int(formgame.vars.players)
            players = []

            if playeramount not in game.PLAYERAMOUNTS.get(formgame.vars.gametype, []):
                raise game.NewGameException("Wrong amount of players for the format")

            for i in range(1, playeramount + 1):
                try:
                    playerid = int(formgame.vars["player" + str(i)])
                except ValueError:
                    raise game.NewGameException("Invalid player id")
                if playerid == None:
                    raise game.NewGameException("Please insert player " + str(i))
                else:
                    addplayer = [player for player in session.groupplayers if player["id"] == playerid]
                    if len(addplayer) != 0:
                        players.append(addplayer[0])
                    elif playerid == session.guestplayer["id"]:
                        players.append(session.guestplayer)
                    else:
                        raise game.NewGameException("Player not found")

            gamedata = dict(formgame.vars)
            tags = gamedata["tags"]
            gamedata["tags"] = tags.replace(",", " ").strip()
            gamedata["players"] = players
            gamedata["playeramount"] = playeramount

            game_id = game.create_game(gamedata)
            redirect(URL("ingame", "ingame", vars=dict(game_id=game_id)))
        except game.NewGameException as nge:
            if nge.message:
                response.flash = nge.message

    elif formgame.errors:
        response.flash = "form has errors"

    return dict(
        formgame=formgame, playerlist=session.groupplayers, guestplayer=session.guestplayer, tags=game.get_recent_tags()
    )
Exemple #28
0
def voice():
    game = create_game(type='voice')
    input = ' '
    if 'Digits' in request.form:
        input = str(request.form['Digits'])
    return play(game, input)
Exemple #29
0
def sms():
    game = create_game(type='sms')
    return play(game, str(request.form['Body']))
Exemple #30
0
 def callback_start(self):
     temp = game.create_game()
     mid = SlideInBTransition(temp, 1)
     cocos.director.director.push(mid)