Ejemplo n.º 1
0
 def __init__(self):
     card_types = (MakiCard(1), MakiCard(2), MakiCard(3), PuddingCard(),
                   NigiriCard('egg'), NigiriCard('salmon'),
                   NigiriCard('squid'), TempuraCard(), SashimiCard(),
                   DumplingCard(), WasabiCard())
     card_counts = (7, 7, 7, 8, 6, 6, 5, 10, 10, 15, 4)
     super().__init__(*self.create_card_list(card_types, card_counts))
Ejemplo n.º 2
0
def test_complicated_score():
    cards = {
        'a': [
            SashimiCard(),
            MakiCard(2),
            MakiCard(1),
            NigiriCard('egg'),
            MakiCard(1),
            DumplingCard(),
            DumplingCard(),
            NigiriCard('salmon'),
            PuddingCard(),
            DumplingCard()
        ],
        'b': [
            DumplingCard(),
            NigiriCard('squid'),
            PuddingCard(),
            NigiriCard('salmon'),
            WasabiCard(),
            SashimiCard(),
            NigiriCard('salmon'),
            PuddingCard(),
            NigiriCard('salmon'),
            TempuraCard()
        ]
    }
    scores = get_score(cards, end_round=True)
    assert scores['a'] == 6 + 3 + 6
    assert scores['b'] == 0 + 13 + 1
Ejemplo n.º 3
0
def test_deck_stop():
    d = Deck(MakiCard(1), MakiCard(2))
    _ = next(d)
    _ = next(d)
    try:
        _ = next(d)
        raise RuntimeError('Deck returns too many cards')
    except StopIteration:
        pass
Ejemplo n.º 4
0
def test_certain_cards_carry_rewards_at_end_of_round():
    p1 = Player("bob")
    p2 = Player("sharon")
    # create a deck with no cards that are worth points during a round
    d = Deck.create([MakiCard(3)], [100])
    g = Game(deck=d, agents=[p1, p2], cards_per_player=10)
    g.play_round()
    g.play_round()
    print(g.gamelog)
    assert g.gamelog.shape[0] == 42
    assert g.gamelog['reward'][0] == 0.0
    assert g.gamelog['reward'][1] == 0.0
Ejemplo n.º 5
0
def test_certain_cards_carry_no_rewards_within_rounds():
    p1 = Player("bob")
    p2 = Player("sharon")
    # create a deck with no cards that are worth points during a round
    d = Deck.create([PuddingCard(), WasabiCard(), MakiCard(3)], [8, 4, 4 * 7])
    g = Game(deck=d, agents=[p1, p2], cards_per_player=5)
    g.play_turn()
    assert g.gamelog.shape[0] == 4
    assert g.gamelog['reward'][0] == 0.0
    assert g.gamelog['reward'][1] == 0.0
    g.play_turn()
    g.play_turn()
    g.play_turn()
    assert g.gamelog['reward'].iloc[-1] == 0.0
Ejemplo n.º 6
0
def test_sashimi_scores():
    cards = {
        'a': [SashimiCard(), WasabiCard()],
        'b': [SashimiCard(), SashimiCard(),
              MakiCard(2)],
        'c': [SashimiCard(),
              SashimiCard(),
              SashimiCard(),
              TempuraCard()]
    }
    scores = get_score(cards)
    assert scores['a'] == 0
    assert scores['b'] == 0
    assert scores['c'] == 10
Ejemplo n.º 7
0
def test_maki_scores():
    cards = {
        'a': [MakiCard(3)],
        'b': [MakiCard(2)] * 4,
    }
    scores = get_score(cards, end_round=True)
    assert scores['a'] == 3
    assert scores['b'] == 6
    cards = {
        'a': [MakiCard(0)],
        'b': [MakiCard(2)] * 4,
    }
    scores = get_score(cards, end_round=True)
    assert scores['a'] == 0
    assert scores['b'] == 6
    cards = {
        'a': [MakiCard(3)],
        'b': [MakiCard(1)] * 3,
        'c': [MakiCard(3)],
    }
    scores = get_score(cards, end_round=True)
    assert scores['a'] == 2
    assert scores['b'] == 2
    assert scores['c'] == 2
Ejemplo n.º 8
0
def test_deck_init():
    d = Deck(MakiCard(1), MakiCard(2))
    assert len(d.cards) == 2
    assert len(d.initial_cards) == 2
Ejemplo n.º 9
0
def test_deck_reshuffle():
    d = Deck(MakiCard(1), MakiCard(2))
    _ = next(d)
    d.reset()
    _ = next(d)
    _ = next(d)