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 pygame
@@ -26,6 +27,16 @@ class EndSceen():
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):
self.endScreenTimer = 0;
self.playerName = 'Player'
@@ -36,25 +47,51 @@ class EndSceen():
self.isBackButton = True
self.loadResults()
def loadResults(self):
with open(self.saveFileName, 'rb') as file:
for line in file:
try:
fileWithData = open(self.saveFileName, 'rb')
except IOError as e:
pass
else:
listPlayers = pickle.load(fileWithData)
for line in listPlayers:
if (len(line) == 3):
self.data.append (
[line[0][:10], int(line[1]), float(line[2])]
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),
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):
render = font.render(text, True, color, backColor)
rect = render.get_rect()
@@ -108,16 +145,6 @@ class EndSceen():
(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):
backGround = pygame.Surface(self.game.screenSize, pygame.SRCALPHA)
backGround.fill((0,0,0,200))
@@ -206,27 +233,3 @@ class EndSceen():
self.playerName += pygame.key.name(event.key).upper()
else:
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.