Python Object-Oriented Python Dice Roller RPG Roller

Baruch Zeif
Baruch Zeif
5,169 Points

RPG 2/2

I tried it in PyCharm and it seems to be working fine. I'm not sure where I'm going wrong.
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)
class Hand(list):
    class Hand(list):
    def __init__(self, size = 0, die_class = D20):

        for _ in range(size):

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

    def total(self):
        return sum(self)
Dave StSomeWhere
Dave StSomeWhere
19,762 Points

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

1 Answer

Baruch Zeif
Baruch Zeif
5,169 Points

Good call! thank you so much!