예제 #1
0
    def test_dont_call_riichi_with_tanki_wait(self):
        table = Table()
        table.count_of_remaining_tiles = 60
        table.set_players_scores([250, 250, 250, 250])
        player = table.player
        player.name = "AaronXu"
        player.scores = 10000

        tiles = self._string_to_136_array(sou='123456', pin='123456', man='3')
        player.init_hand(tiles)

        player.draw_tile(self._string_to_136_tile(man='4'))
        player.discard_tile()

        self.assertEqual(player.can_call_riichi(), False)

        table = Table()
        table.count_of_remaining_tiles = 60
        player = table.player
        player.scores = 25000

        tiles = self._string_to_136_array(sou='1133557799', pin='113')
        tile = self._string_to_136_tile(pin='6')
        player.init_hand(tiles)
        player.draw_tile(tile)
        player.discard_tile()

        # for chitoitsu it is ok to have a pair wait
        self.assertEqual(player.can_call_riichi(), True)
    def test_set_scores(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]

        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(3).scores, 40500)
예제 #3
0
    def test_set_scores(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]

        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(3).scores, 40500)
예제 #4
0
def test_set_scores():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])
    scores = [230, 110, 55, 405]

    table.set_players_scores(scores)

    assert table.get_player(0).scores == 23000
    assert table.get_player(1).scores == 11000
    assert table.get_player(2).scores == 5500
    assert table.get_player(3).scores == 40500
    def test_set_scores_and_uma(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]
        uma = [-17, 3, 48, -34]

        table.set_players_scores(scores, uma)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(0).uma, -17)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(1).uma, 3)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(2).uma, 48)
        self.assertEqual(table.get_player(3).scores, 40500)
        self.assertEqual(table.get_player(3).uma, -34)
예제 #6
0
    def test_set_scores_and_uma(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]
        uma = [-17, 3, 48, -34]

        table.set_players_scores(scores, uma)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(0).uma, -17)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(1).uma, 3)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(2).uma, 48)
        self.assertEqual(table.get_player(3).scores, 40500)
        self.assertEqual(table.get_player(3).uma, -34)
예제 #7
0
def test_set_scores_and_uma():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])
    scores = [230, 110, 55, 405]
    uma = [-17, 3, 48, -34]

    table.set_players_scores(scores, uma)

    assert table.get_player(0).scores == 23000
    assert table.get_player(0).uma == (-17)
    assert table.get_player(1).scores == 11000
    assert table.get_player(1).uma == 3
    assert table.get_player(2).scores == 5500
    assert table.get_player(2).uma == 48
    assert table.get_player(3).scores == 40500
    assert table.get_player(3).uma == (-34)
예제 #8
0
    def test_should_go_for_defence_and_good_hand(self):
        """
        When we have 13 tiles in hand and someone declared a riichi
        """
        table = Table()
        table.set_players_names_and_ranks([
            {
                "name": "a",
                "rank": 1500
            },
            {
                "name": "b",
                "rank": 1500
            },
            {
                "name": "c",
                "rank": 1500
            },
            {
                "name": "d",
                "rank": 1500
            },
        ])
        table.set_players_scores([250, 250, 250, 250])

        tiles = self._string_to_136_array(sou='234678', pin='34789', man='77')
        table.player.init_hand(tiles)
        table.player.draw_tile(self._string_to_136_tile(man='6'))
        # discard here to reinit shanten number in AI
        table.player.discard_tile()

        self.assertEqual(table.player.ai.defence.should_go_to_defence_mode(),
                         False)

        table.add_called_riichi(3)

        # our hand is in tempai, but it is really cheap
        self.assertEqual(table.player.ai.defence.should_go_to_defence_mode(),
                         False)

        table.add_dora_indicator(self._string_to_136_tile(man='4'))
        table.add_dora_indicator(self._string_to_136_tile(pin='3'))

        # our hand in tempai, and it has a cost, so let's push it
        self.assertEqual(table.player.ai.defence.should_go_to_defence_mode(),
                         False)
    def test_set_scores_and_recalculate_player_position(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        self.assertEqual(table.get_player(0).first_seat, 0)
        self.assertEqual(table.get_player(1).first_seat, 1)
        self.assertEqual(table.get_player(2).first_seat, 2)
        self.assertEqual(table.get_player(3).first_seat, 3)

        scores = [230, 110, 55, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 2)
        self.assertEqual(table.get_player(1).position, 3)
        self.assertEqual(table.get_player(2).position, 4)
        self.assertEqual(table.get_player(3).position, 1)

        scores = [110, 110, 405, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 3)
        self.assertEqual(table.get_player(1).position, 4)
        self.assertEqual(table.get_player(2).position, 1)
        self.assertEqual(table.get_player(3).position, 2)
예제 #10
0
    def test_set_scores_and_recalculate_player_position(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        self.assertEqual(table.get_player(0).first_seat, 0)
        self.assertEqual(table.get_player(1).first_seat, 1)
        self.assertEqual(table.get_player(2).first_seat, 2)
        self.assertEqual(table.get_player(3).first_seat, 3)

        scores = [230, 110, 55, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 2)
        self.assertEqual(table.get_player(1).position, 3)
        self.assertEqual(table.get_player(2).position, 4)
        self.assertEqual(table.get_player(3).position, 1)

        scores = [110, 110, 405, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 3)
        self.assertEqual(table.get_player(1).position, 4)
        self.assertEqual(table.get_player(2).position, 1)
        self.assertEqual(table.get_player(3).position, 2)
예제 #11
0
def test_set_scores_and_recalculate_player_position():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])

    assert table.get_player(0).first_seat == 0
    assert table.get_player(1).first_seat == 1
    assert table.get_player(2).first_seat == 2
    assert table.get_player(3).first_seat == 3

    scores = [230, 110, 55, 405]
    table.set_players_scores(scores)

    assert table.get_player(0).position == 2
    assert table.get_player(1).position == 3
    assert table.get_player(2).position == 4
    assert table.get_player(3).position == 1

    scores = [110, 110, 405, 405]
    table.set_players_scores(scores)

    assert table.get_player(0).position == 3
    assert table.get_player(1).position == 4
    assert table.get_player(2).position == 1
    assert table.get_player(3).position == 2