Exemple #1
0
    def re_roll_dice(self, indexes_of_dice_to_re_roll):
        if self.re_rolls_left <= 0:
            raise ValueError("No re-rolls left")

        if isinstance(indexes_of_dice_to_re_roll, int):
            indexes_of_dice_to_re_roll = [indexes_of_dice_to_re_roll]

        invalid_indexes = []
        temp_values = self.dice_values.copy()

        for i in indexes_of_dice_to_re_roll:
            try:
                temp_values[i] = dice.roll()
            except IndexError:
                invalid_indexes.append(i)

        if len(invalid_indexes) > 0:
            raise ValueError(
                f'Invalid indexes: {", ".join(str(i) for i in invalid_indexes)}'
            )

        self.re_rolls_left -= 1
        self.dice_values = temp_values

        return self.dice_values
Exemple #2
0
def roll_dice(request):
    if request.method == 'GET':
        # temp intend to utilize game.dice.dice.roll()
        options = ['1', '2', '3', 'e', 'a', 'h']

        dto = models.Dice()
        print(roll())
        dto.dice1 = random.choice(list(options))  # roll()
        dto.dice1_selected = True
        dto.dice2 = random.choice(list(options))  # roll()
        dto.dice2_selected = False
        dto.dice3 = random.choice(list(options))  # roll()
        dto.dice3_selected = True
        dto.dice4 = random.choice(list(options))  # roll()
        dto.dice4_selected = False
        dto.dice5 = random.choice(list(options))  # roll()
        dto.dice5_selected = True
        dto.dice6 = random.choice(list(options))  # roll()
        dto.dice6_selected = False
        serializer = serializers.RollSerializer(dto)
        return Response(serializer.data)
Exemple #3
0
 def add_bonus_die(self, count_to_add=1):
     for _ in range(count_to_add):
         self.dice_values.append(dice.roll())
Exemple #4
0
def test_roll():
    assert dice.roll() in dice.DieValue