Python Object-Oriented Python Dice Roller RPG Roller

RPG 2/2

I tried it in PyCharm and it seems to be working fine. I'm not sure where I'm going wrong.

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__(sides = 20)
hands.py
class Hand(list):
    class Hand(list):
    def __init__(self, size = 0, die_class = D20):
        super().__init__()

        for _ in range(size):
            self.append(die_class())

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

    @property
    def total(self):
        return sum(self)
Dave StSomeWhere
Dave StSomeWhere
19,208 Points

oops - looks like you just made an error with your copy/paste from PyCharm, look closer at hands.py

1 Answer

Good call! thank you so much!