示例#1
0
 def test_card_names(self):
     pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5)
     rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2)
     horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8)
     self.assertEqual(pang_card.name, Cards.CardName.PANG)
     self.assertEqual(rifle_card.name, Cards.CardName.RIFLE)
     self.assertEqual(horse_card.name, Cards.CardName.HORSE)
示例#2
0
    def test_card_instances(self):
        pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5)
        rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2)
        horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8)

        self.assertIsInstance(pang_card, Cards.Card)
        self.assertIsInstance(rifle_card, Cards.Card)
        self.assertIsInstance(rifle_card, Cards.WeaponCard)
        self.assertIsInstance(horse_card, Cards.Card)
        self.assertIsInstance(horse_card, Cards.EquipmentCard)
示例#3
0
 def test_use_weapon_cards(self):
     rifle = Cards.RifleCard(Cards.Suit.CLUBS, 5)
     pistol = Cards.PistolCard(Cards.Suit.HEARTS, 8)
     player_names = [
         'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart'
     ]
     game_object = Game(player_names)
     game_object.active_player.add_cards([pistol, rifle])
     self.assertIsNone(game_object.active_player.weapon)
     game_object.use_card(rifle)
     self.assertEqual(game_object.active_player.weapon, rifle)
     game_object.use_card(pistol)
     self.assertEqual(game_object.active_player.weapon, pistol)
示例#4
0
    def test_use_draw_cards(self):

        draw_card1 = Cards.WellsFargoCard(Cards.Suit.CLUBS, 5)
        draw_card2 = Cards.StageCoachCard(Cards.Suit.HEARTS, 8)
        player_names = [
            'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart'
        ]
        game_object = Game(player_names)

        game_object.active_player.add_cards([draw_card1, draw_card2])
        self.assertEqual(len(game_object.active_player.hand), 2)
        game_object.use_card(draw_card1)
        self.assertEqual(len(game_object.active_player.hand), 4)
        game_object.use_card(draw_card2)
        self.assertEqual(len(game_object.active_player.hand), 5)
示例#5
0
 def test_card_attributes(self):
     card = Cards.Card('test_card', Cards.Suit.HEARTS, 5,
                       Cards.CardPosition.TARGET)
     self.assertEqual(card.name, 'test_card')
     self.assertEqual(card.value, 5)
     self.assertEqual(card.suit, Cards.Suit.HEARTS)
     self.assertEqual(card.card_position, Cards.CardPosition.TARGET)
示例#6
0
 def test_use_equipment_cards(self):
     scope = Cards.ScopeCard(Cards.Suit.CLUBS, 6)
     barrel = Cards.BarrelCard(Cards.Suit.DIAMONDS, 7)
     horse = Cards.HorseCard(Cards.Suit.HEARTS, 8)
     player_names = [
         'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart'
     ]
     game_object = Game(player_names)
     game_object.active_player.add_cards([scope, barrel, horse])
     self.assertIsNone(game_object.active_player.equipment)
     game_object.use_card(horse)
     self.assertEqual(game_object.active_player.equipment, horse)
     game_object.use_card(barrel)
     self.assertEqual(game_object.active_player.equipment, barrel)
     game_object.use_card(scope)
     self.assertEqual(game_object.active_player.equipment, scope)
示例#7
0
    def test_use_bang_cards(self):
        bang_card1 = Cards.PangCard(Cards.Suit.SPADES, 2)
        bang_card2 = Cards.PangCard(Cards.Suit.HEARTS, 8)
        player_names = [
            'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart'
        ]
        game_object = Game(player_names)
        game_object.active_player = game_object.players[3]

        game_object.active_player.add_cards([bang_card1, bang_card2])
        self.assertEqual(game_object.players[4].health, 5)
        self.assertEqual(len(game_object.active_player.hand), 2)
        game_object.use_card(bang_card1, game_object.players[4])
        self.assertEqual(len(game_object.active_player.hand), 1)
        self.assertEqual(game_object.players[4].health, 4)
        with self.assertRaises(InvalidTargetException):
            game_object.use_card(bang_card2, game_object.players[6])
        self.assertEqual(len(game_object.active_player.hand), 1)
示例#8
0
    def test_get_possible_targets(self):
        pistol = Cards.PistolCard(Cards.Suit.DIAMONDS, 5)
        player_names = [
            'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart'
        ]
        game_object = Game.start_game(player_names)
        game_object.active_player = game_object.players[3]
        found_targets = game_object.get_possible_targets()
        self.assertEqual(found_targets,
                         [game_object.players[2], game_object.players[4]])

        game_object.active_player = game_object.players[5]
        game_object.active_player.add_cards([pistol])
        game_object.use_card(pistol)
        found_targets = game_object.get_possible_targets()

        self.assertEqual(found_targets, [
            game_object.players[3], game_object.players[4],
            game_object.players[6], game_object.players[0]
        ])
示例#9
0
 def create_deck(self):
     """
     Create all the different cards an place in deck
     :return:
     """
     deck = []
     for s in Suit:
         for i in range(2, 9):
             deck.append(Cards.PangCard(i, s))
             deck.append(Cards.MissCard(i, s))
         for i in range(2, 9, 3):
             deck.append(Cards.PistolCard(i, s))
             deck.append(Cards.StageCoachCard(i, s))
             deck.append(Cards.BeerCard(i, s))
             deck.append(Cards.PanicCard(i, s))
         for i in range(3, 9, 2):
             deck.append(Cards.RifleCard(i, s))
             deck.append(Cards.ScopeCard(i, s))
             deck.append(Cards.BarrelCard(i, s))
             deck.append(Cards.HorseCard(i, s))
         for i in range(2, 9, 3):
             deck.append(Cards.WellsFargoCard(i, s))
     return deck
示例#10
0
 def test_card_str(self):
     pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5)
     rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2)
     horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8)
     pass