Reworked load()

This commit is contained in:
2021-04-06 20:47:46 +03:00
parent e66e246b45
commit fd11e7f6ac
2 changed files with 49 additions and 46 deletions
+49 -46
View File
@@ -1,7 +1,8 @@
""" """
Enemy entity class Endscreen class
""" """
import pickle import pickle
import pygame import pygame
@@ -26,6 +27,16 @@ class EndSceen():
self.saveFileName = 'leaders.lb' self.saveFileName = 'leaders.lb'
def getScorePosition(self, score):
counter = 1
for i in self.sortedDataByScores:
if i[1][1] < score:
return counter
else:
counter += 1
return counter
def newEndScreen(self): def newEndScreen(self):
self.endScreenTimer = 0; self.endScreenTimer = 0;
self.playerName = 'Player' self.playerName = 'Player'
@@ -36,25 +47,51 @@ class EndSceen():
self.isBackButton = True self.isBackButton = True
try: self.loadResults()
fileWithData = open(self.saveFileName, 'rb')
except IOError as e:
pass
else:
listPlayers = pickle.load(fileWithData)
for line in listPlayers:
if (len(line) == 3): def loadResults(self):
self.data.append ( with open(self.saveFileName, 'rb') as file:
[line[0][:10], int(line[1]), float(line[2])] for line in file:
try:
name, score, time = with line.split()
self.data.append(
[name[:10].decode('ascii'), int(score), float(time)]
) )
except Exception:
continue
fileWithData.close() file.close()
self.sortedDataByScores = sorted(enumerate(self.data), self.sortedDataByScores = sorted(enumerate(self.data),
key=lambda i: i[1][1], reverse=True) key=lambda i: i[1][1], reverse=True)
def saveResults(self):
newData = []
# try:
# fileWithData = open(self.saveFileName, 'rb')
# except IOError as e:
# pass
# else:
# tmpData = pickle.load(fileWithData)
# fileWithData.close()
#
# for line in tmpData:
# if len(line.split()) == 3:
# if not (line.split()[0].rstrip() == self.playerName.rstrip()):
# newData.append(line)
#
# newData.append(('{0} {1} {2:.2f}\n'.format(self.playerName,
# self.game.getScore(), self.game.getTime())))
#
# with open (self.saveFileName, 'wb') as fileWithData:
# pickle.dump(newData, fileWithData)
#
# fileWithData.close()
def renderText(self, text, font, color, center, backColor=None): def renderText(self, text, font, color, center, backColor=None):
render = font.render(text, True, color, backColor) render = font.render(text, True, color, backColor)
rect = render.get_rect() rect = render.get_rect()
@@ -108,16 +145,6 @@ class EndSceen():
(self.game.getScreenWidth()/2,100 + (number + 1)*50)) (self.game.getScreenWidth()/2,100 + (number + 1)*50))
def getScorePosition(self, score):
counter = 1
for i in self.sortedDataByScores:
if i[1][1] < score:
return counter
else:
counter += 1
return counter
def render(self): def render(self):
backGround = pygame.Surface(self.game.screenSize, pygame.SRCALPHA) backGround = pygame.Surface(self.game.screenSize, pygame.SRCALPHA)
backGround.fill((0,0,0,200)) backGround.fill((0,0,0,200))
@@ -206,27 +233,3 @@ class EndSceen():
self.playerName += pygame.key.name(event.key).upper() self.playerName += pygame.key.name(event.key).upper()
else: else:
self.playerName += pygame.key.name(event.key).lower() self.playerName += pygame.key.name(event.key).lower()
def saveResults(self):
newData = []
try:
fileWithData = open(self.saveFileName, 'rb')
except IOError as e:
pass
else:
tmpData = pickle.load(fileWithData)
fileWithData.close()
for line in tmpData:
if len(line.split()) == 3:
if not (line.split()[0].rstrip() == self.playerName.rstrip()):
newData.append(line)
newData.append(('{0} {1} {2:.2f}\n'.format(self.playerName,
self.game.getScore(), self.game.getTime())))
with open (self.saveFileName, 'wb') as fileWithData:
pickle.dump(newData, fileWithData)
fileWithData.close()
BIN
View File
Binary file not shown.