コード例 #1
0
ファイル: BotTrainTest.py プロジェクト: Pellanor/MexicanTrain
    def test_bot_train(self):
        player_id = 42
        train_id = 9001
        required = 6
        p = Player(player_id, TestBot())
        t = Train(train_id, required, p)
        bt = BotTrain(t, p)
        self.assertTrue(bt.can_add)
        self.assertTrue(bt.am_owner)
        self.assertFalse(bt.identity.mexican)
        self.assertEqual(p, bt.identity.owner)
        self.assertEqual(required, bt.requires)
        bt.cars.append(Domino(2, 3))
        self.assertEqual(0, len(t.cars))

        d1 = Domino(6, 6)
        t.add_domino(d1, p)
        bt = BotTrain(t, p)
        self.assertTrue(bt.demands_satisfaction)
        self.assertEqual(6, bt.requires)
        self.assertEqual(d1, bt.cars.pop())

        d2 = Domino(12, 6)
        t.add_domino(d2, p)
        bt = BotTrain(t, p)
        self.assertFalse(bt.demands_satisfaction)
        self.assertEqual(12, bt.requires)
        self.assertEqual(d2, bt.cars.pop())
コード例 #2
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_provide_satisfaction(self):
     t = Train(5, 5, self.player_five)
     d = Domino(5, 5)
     t.add_domino(d, self.player_five)
     self.assertTrue(t.demands_satisfaction)
     self.assertFalse(t.private)
     t.add_domino(Domino(3, 5), self.player_five)
     self.assertFalse(t.demands_satisfaction)
     self.assertTrue(t.private)
コード例 #3
0
ファイル: GameState.py プロジェクト: Pellanor/MexicanTrain
 def place_domino(self, train: Train, domino: Domino, player: Player):
     """
     Place a domino on a Train.
     :param train: The Train to add the Domino to.
     :param domino: The Domino to add.
     :param player: The Player who is placing the domino.
     """
     if train.add_domino(domino, player):
         player.dominoes.remove(domino)
         self.played_count[domino.left] += 1
         if not domino.is_double:
             self.played_count[domino.right] += 1
         self.played.append(domino)
コード例 #4
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_update_required(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     t.add_domino(d, self.player_two)
     self.assertEqual(3, t.requires)
コード例 #5
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_private_to_public(self):
     t = Train(2, 2, self.player_two)
     t.make_private()
     t.make_public()
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
コード例 #6
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_private_train(self):
     t = Train(2, 2, self.player_two)
     t.make_private()
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
     self.assertFalse(t.add_domino(d, Player(1, TestBot())))
コード例 #7
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_cannot_add_domino(self):
     t = Train(5, 5, self.player_five)
     d = Domino(2, 3)
     self.assertFalse(t.add_domino(d, self.player_two))
コード例 #8
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_can_add_domino(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
コード例 #9
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_does_not_demand_satisfaction(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     t.add_domino(d, self.player_two)
     self.assertFalse(t.demands_satisfaction)
     self.assertTrue(t.private)