Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Object-Oriented Python Dice Roller RPG Roller

Adam Teale
Adam Teale
10,989 Points

Bummer! Try again!

Hi all!

Once again stuck on a code challenge - I must say that the feedback "Bummer! Try again!" is super useless. I end up doing the code challenges locally to get some proper debugger. As has happened before the code runs fine locally (without errors). Any one care to have a look at what could be the issue this time?

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):
        return super().__init__(sides=20)
hands.py
class Hand(list):
    @property
    def total(self):
        return sum(self)

    @classmethod
    def roll(cls, amnt):
        a = []
        for _ in range(amnt):
            a.append(D20())
        return cls(a)

2 Answers

Noel Barcelona
PLUS
Noel Barcelona
Courses Plus Student 495 Points

if the challenge objectives are achieved when the code is ran locally, then the checker is looking for some specific structure in your code. The code shows the correct output but is not structured the way it wants. It can be a little frustrating sometimes.

Adam Teale
Adam Teale
10,989 Points

Thanks Noel, I'll have another look! Cheers!

Adam Teale
Adam Teale
10,989 Points

Thanks for your help Noel, in the end the exercise was great because it brought me to a better understanding of the @classmethod decorator. In the end the main issue was that I needed to include an import statement in the hands.py file: from dice import D20

THanks!

Noel Barcelona
Noel Barcelona
Courses Plus Student 495 Points

You did it all on your own. No credit needed. Cheers!