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 (retired) Inheritance Score Method

Jonathan Shedd
Jonathan Shedd
1,921 Points

Having a hard time understanding the question and as a result can't get correct answer.

The question is: Add a score method to Game that takes a player argument. The player argument will be either 1 or 2. Increase that player's value in self.current_score by 1. You'll need to adjust the index (i.e. player = 1 means self.current_score[0] needs to increase).

I'm not really understanding what this challenge is wanting me to do.

game.py
class Game:
  def __init__(self):
    self.current_score = [0, 0]

  def score(self, player):
    if player == 1:
        self.current_score[0] + 1
    elif player == 2:
        self.current_score[1] + 1
    else:
        pass

Did that help?

1 Answer

Currently you are referencing the correct variable and you are adding 1 to it, however you aren't setting that variable equal to its current value +1, for example:

>>>current_score = 0
>>>current_score +  1
1
>>>current_score
0
>>>current_score += 1
>>>
>>>current_score
1

The latter is essentially saying current_score = current_score + 1 which is updating that variable. The former is doing a calculation but the variable isn't set to it.

Also if there are 2 options, either 1 or 2 there is no need for 3 test sequences. If its not 1 than it must be 2.

Here is the solution and I hope I have helped.

class Game:
    def __init__(self):
        self.current_score = [0, 0]
    def score(player):
        if player == 1:
            self.current_score[0] += 1
        else:
            self.current_score[1] += 1
Jonathan Shedd
Jonathan Shedd
1,921 Points

Thanks for your help! It all makes sense now and I completed the challenge. :)