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
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)
def add_bonus_die(self, count_to_add=1): for _ in range(count_to_add): self.dice_values.append(dice.roll())
def test_roll(): assert dice.roll() in dice.DieValue