예제 #1
0
def test_shuffle_001():
    """デッキのシャッフル."""
    deck = trump_deck.TrumpDeck()
    deck.set_one_joker_deck()
    deck_default = trump_deck.TrumpDeck()
    deck_default.set_one_joker_deck()
    deck.shuffle()
    size = deck.size()
    same_count = 0
    for i in range(size):
        if deck.index(i) == deck_default.index(i):
            same_count += 1
    # 乱数の程度によるが少なくとも一致が半分以下ならOK
    assert same_count <= (size / 2)
예제 #2
0
def set_one_joker_deck_001():
    """53枚のカードを設定."""
    deck = trump_deck.TrumpDeck()
    deck.set_one_joker_deck()
    size = deck.size()
    assert size == 53
    # 各数値が1つずつ存在する事を確認する
    joker_list = list(range(1, 2))
    spade_list = list(range(1, 14))
    heart_list = list(range(1, 14))
    diamond_list = list(range(1, 14))
    club_list = list(range(1, 14))
    for i in range(size):
        card = deck.index(i)
        if card.is_joker():
            assert (card.get_number() == 1)
            joker_list.remove(card.get_number())
        elif card.is_spade():
            assert (card.get_number() >= 1 and card.get_number() <= 13)
            spade_list.remove(card.get_number())
        elif card.is_heart():
            assert (card.get_number() >= 1 and card.get_number() <= 13)
            heart_list.remove(card.get_number())
        elif card.is_diamond():
            assert (card.get_number() >= 1 and card.get_number() <= 13)
            diamond_list.remove(card.get_number())
        elif card.is_club():
            assert (card.get_number() >= 1 and card.get_number() <= 13)
            club_list.remove(card.get_number())
    # 全てのカードのnumberを重複なしで取り出せたなら各listが0になる
    assert len(joker_list) == 0
    assert len(spade_list) == 0
    assert len(heart_list) == 0
    assert len(diamond_list) == 0
    assert len(club_list) == 0
예제 #3
0
def test_set_full_deck_002():
    """54枚のカードを設定(中身をチェック)."""
    deck = trump_deck.TrumpDeck()
    deck.set_full_deck()
    size = deck.size()
    joker_count = 0
    spade_count = 0
    heart_count = 0
    diamond_count = 0
    club_count = 0
    for i in range(size):
        card = deck.index(i)
        if card.is_joker():
            joker_count += 1
            assert (card.get_number() >= 1 and card.get_number() <= 2)
        elif card.is_spade():
            spade_count += 1
            assert (card.get_number() >= 1 and card.get_number() <= 13)
        elif card.is_heart():
            heart_count += 1
            assert (card.get_number() >= 1 and card.get_number() <= 13)
        elif card.is_diamond():
            diamond_count += 1
            assert (card.get_number() >= 1 and card.get_number() <= 13)
        elif card.is_club():
            club_count += 1
            assert (card.get_number() >= 1 and card.get_number() <= 13)
    assert joker_count == 2
    assert spade_count == 13
    assert heart_count == 13
    assert diamond_count == 13
    assert club_count == 13
예제 #4
0
def test_index_001():
    """デッキの参照."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.DIAMOND, 3))
    card = deck.index(0)
    assert str(type(card)) == trump.Trump.TYPE_STRING
    assert card.get_number() == 3
    assert card.get_suit() == trump.Trump.DIAMOND
    assert card.is_diamond()
예제 #5
0
def test_draw_001():
    """デッキから引く."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.HEART, 11))
    card = deck.draw()
    assert str(type(card)) == trump.Trump.TYPE_STRING
    assert card.get_number() == 11
    assert card.get_suit() == trump.Trump.HEART
    assert card.is_heart()
예제 #6
0
def test_put_top_001():
    """トランプをデッキをトップに置く."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.JOKER, 1))
    card = deck.index(0)
    assert str(type(card)) == trump.Trump.TYPE_STRING
    assert card.get_number() == 1
    assert card.get_suit() == trump.Trump.JOKER
    assert card.is_joker()
예제 #7
0
def test_deal_001():
    """デッキからカードを配る."""
    deal = trump_deal.TrumpDeal()
    deck = trump_deck.TrumpDeck()
    old_maid_players = []
    old_maid_players.append(old_maid_player.OldMaidPlayer())
    old_maid_players.append(old_maid_player.OldMaidPlayer())
    deck.set_one_joker_deck()
    deal.deal(deck, old_maid_players)
    assert old_maid_players[0].get_hand_size() == 27
    assert old_maid_players[1].get_hand_size() == 26
    assert deck.size() == 0
예제 #8
0
def test_draw_002():
    """デッキから引く(2枚)."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.HEART, 9))
    deck.put_top(trump.Trump(trump.Trump.JOKER, 2))
    card_joker = deck.draw()
    assert str(type(card_joker)) == trump.Trump.TYPE_STRING
    assert card_joker.get_number() == 2
    assert card_joker.get_suit() == trump.Trump.JOKER
    assert card_joker.is_joker()
    card_heart = deck.draw()
    assert str(type(card_heart)) == trump.Trump.TYPE_STRING
    assert card_heart.get_number() == 9
    assert card_heart.get_suit() == trump.Trump.HEART
    assert card_heart.is_heart()
예제 #9
0
def test_put_top_002():
    """トランプをデッキをトップに置く(2枚)."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.JOKER, 1))
    deck.put_top(trump.Trump(trump.Trump.CLUB, 10))
    card_joker = deck.index(0)
    assert str(type(card_joker)) == trump.Trump.TYPE_STRING
    assert card_joker.get_number() == 1
    assert card_joker.get_suit() == trump.Trump.JOKER
    assert card_joker.is_joker()
    card_club = deck.index(1)
    assert str(type(card_club)) == trump.Trump.TYPE_STRING
    assert card_club.get_number() == 10
    assert card_club.get_suit() == trump.Trump.CLUB
    assert card_club.is_club()
예제 #10
0
 def __init__(self, player_count=4):
     """コンストラクタ."""
     # トランプデッキ
     self._deck = trump_deck.TrumpDeck()
     # 捨て札(トランプペアリスト)
     self._trash_list = []
     # プレイヤー
     if player_count < self.MIN_PLAYER or player_count > self.MAX_PLAYER:
         raise ValueError("set player_count >= 2 and player_count <= 26")
     self._players = []
     for _ in range(player_count):
         self._players.append(old_maid_player_cpu.OldMaidPlayerCpu())
     self._player_count = player_count
     # ターン
     self._game_turn = turn.Turn(0, player_count)
     # シーン
     self._game_scene = scene.Scene()
     # 結果
     self._game_result = result.Result()
예제 #11
0
def test_put_top_003():
    """トランプをデッキをトップに置く(3枚)."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.SPADE, 13))
    deck.put_top(trump.Trump(trump.Trump.DIAMOND, 5))
    deck.put_top(trump.Trump(trump.Trump.HEART, 8))
    card_spade = deck.index(0)
    assert str(type(card_spade)) == trump.Trump.TYPE_STRING
    assert card_spade.get_number() == 13
    assert card_spade.get_suit() == trump.Trump.SPADE
    assert card_spade.is_spade()
    card_diamond = deck.index(1)
    assert str(type(card_diamond)) == trump.Trump.TYPE_STRING
    assert card_diamond.get_number() == 5
    assert card_diamond.get_suit() == trump.Trump.DIAMOND
    assert card_diamond.is_diamond()
    card_heart = deck.index(2)
    assert str(type(card_heart)) == trump.Trump.TYPE_STRING
    assert card_heart.get_number() == 8
    assert card_heart.get_suit() == trump.Trump.HEART
    assert card_heart.is_heart()
예제 #12
0
def test_set_full_deck_001():
    """54枚のカードを設定."""
    deck = trump_deck.TrumpDeck()
    deck.set_full_deck()
    assert deck.size() == 54
예제 #13
0
def test_size_003():
    """デッキのサイズを取得(2枚)."""
    deck = trump_deck.TrumpDeck()
    deck.set_no_joker_deck()
    assert deck.size() == 52
예제 #14
0
def test_size_002():
    """デッキのサイズ取得(0枚)."""
    deck = trump_deck.TrumpDeck()
    assert deck.size() == 0
예제 #15
0
def test_size_001():
    """デッキのサイズ取得(1枚)."""
    deck = trump_deck.TrumpDeck()
    deck.put_top(trump.Trump(trump.Trump.SPADE, 6))
    assert deck.size() == 1