Mathew YangangPython Web Development Techdegree Student 4,433 Points
I am completely lost on the second challenge. Any help will be appreciated
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): @property def total(self): return sum(self)
Jeff MudayTreehouse Moderator 21,420 Points
I find this challenge a little confusing myself, but a deeper read of the requirements yields some hints.
IMPORTANT: "I'm going to use code similar to Hand.roll(2) and I want to get back an instance of Hand with two D20s rolled in it."
This means roll() needs to be a class method. You will have to review the video to understand that.
# make sure to import the D20 since we need to use it. from dice import D20 class Hand(list): # note you may also want to put in a dunder init def __init__(self, numdice): # your code goes here @property def total(self): return sum(self) @classmethod def roll(cls, numdice): # your code goes here
Give it a shot and if you fail, ask for more hints. ;-) Note, you can SEARCH the Community for comments from other students that have gotten stuck on this!