Int conversion not working [duplicate]
I'm creating a highscore feature for my game but I cant get it to work
here is my method for it:
def game_over(self):
# Game over Screen
keys = pygame.key.get_pressed()
self.gameover = pygame.image.load('resources/screen/game_over.png')
screen.blit(self.gameover,(0,0))
high_filer = open('highscores.txt', 'r')
highscore = high_filer.read()
high_filer.close()
int(highscore)
int(self.score)
print highscore + self.score
if self.score > highscore:
high_filew = open('highscores.txt', 'w')
high_filew.write(str(self.score))
high_filew.close()
if (keys[K_RETURN]):
self.state = 1
What it does is reads the most recent highscore from a .txt file and checks if the players score is higher if it is it writes the new highscore into the file
I convert the string from highscore
into a int by using int(highscore)
then and on line 10 I do print highscore + self.score
as a test but I throws an error that says that I can't add a str and an int even though I converted highscore
to an int and I converted self.score so for some reason one of the conversions didn't work
Solution 1:
int()
returns an integer, but you discard that result. Reassign it:
highscore = int(highscore)
The function does not change the variable in-place. If self.score
is a string as well, you'll need to do the same thing for int(self.score)
, or just remove that line.