Python Object-Oriented Python Dice Roller RPG Roller

Dennis Raunitschke
Dennis Raunitschke
8,996 Points

RPG 2/2 Challenge - Why is my code not passing the test?

Hi,

if test my code in a proper workspace it does, what it is supposed to do.

That means for example: hand = Hand.roll(2) returns an instance of Hand with two D20 in it and I can call .total

The exact code here gives me "Bummer. Try again"

dice.py
import random


class Die:
    def __init__(self, sides=2):
        if sides < 2:
            raise ValueError("Can't have fewer than two sides")
        self.sides = sides
        self.value = random.randint(1, sides)

    def __int__(self):
        return self.value

    def __add__(self, other):
        return int(self) + other

    def __radd__(self, other):
        return self + other

class D20(Die):
    def __init__(self):
        super().__init__(20)
hands.py
class Hand(list):
    @property
    def total(self):
        return sum(self)

    def __init__(self, size=0, *args, **kwargs):

        for _ in range(size):
            self.append(dice.D20())

    @classmethod
    def roll(cls, size):
        return cls(size)

1 Answer

Dennis Raunitschke
Dennis Raunitschke
8,996 Points

grrrr..... It was required to import dice at the beginning of the code