fix lap time calculations

This commit is contained in:
SowinskiBraeden committed 2023-06-13 13:02:47 -07:00
1 parent 58f2ed4e9b
commit f033a5268f
1 file changed
+16 -13
+16 -13
View File
@@ -79,31 +79,27 @@ class Window:
if self.sector != prev_sector:
if (self.last_sector == 1 and self.sector == 3) or (self.last_sector == 2 and self.sector == 1): self.lapTimeValid = False
print('Now in sector ', self.sector, ' Last sector was', self.last_sector)
if self.sector == 1 and self.last_sector == 3 and self.startTime != None and prev_sector != self.sector:
self.sectorEnd = time.time()
self.lapTime = round(self.sectorEnd - self.startTime, 3)
self.fastestLap = self.lapTime if (self.lapTime <= self.fastestLap or self.fastestLap == 0) and self.lapTimeValid else self.fastestLap
self.fastest_sector_times = {i: self.sector_times[i] for i in range(1, 4)} if (self.lapTime <= self.fastestLap or self.fastestLap == 0) and self.lapTimeValid else self.fastest_sector_times
self.startTime = self.sectorEnd
self.sector_times[self.last_sector] = round(self.sectorEnd - self.sectorStart, 3)
print(f"Sector {self.last_sector}: {self.sector_times[self.last_sector]}")
valid = "" if self.lapTimeValid else "( Invalid )"
self.sectorStart = self.sectorEnd
self.lapTime = round(sum(self.sector_times[i] for i in range(1, 4)), 3)
fastest: bool = (self.lapTime <= self.fastestLap or self.fastestLap == 0) and self.lapTimeValid
self.fastestLap = self.lapTime if fastest else self.fastestLap
self.fastest_sector_times = {i: self.sector_times[i] for i in range(1, 4)} if fastest else self.fastest_sector_times
self.lapTimeValid = True
print(f"Lap Time: {self.lapTime} {valid}")
if self.sector == 2 and self.last_sector == 1 and prev_sector != self.sector:
self.sectorEnd = time.time()
self.sector_times[self.last_sector] = round(self.sectorEnd - self.sectorStart, 3)
self.sectorStart = self.sectorEnd
print(f"Sector {self.last_sector}: {self.sector_times[self.last_sector]}")
if self.sector == 3 and self.last_sector == 2 and prev_sector != self.sector:
self.sectorEnd = time.time()
self.sector_times[self.last_sector] = round(self.sectorEnd - self.sectorStart, 3)
self.sectorStart = self.sectorEnd
print(f"Sector {self.last_sector}: {self.sector_times[self.last_sector]}")
if self.sector == 1 and self.last_sector == 3 and self.startTime == None:
self.startTime = time.time()
@@ -115,16 +111,23 @@ class Window:
self.track.draw(self.screen)
self.car.draw(self.screen)
text = self.font.render(f"Fastest Lap: {self.fastestLap:.3f}", True, colors.Green, colors.Black)
self.screen.blit(text, text.get_rect())
for i in range(1, len(self.sector_times) + 1):
faster = self.sector_times[i] <= self.fastest_sector_times[i]
color = colors.Green if faster else colors.Yellow
diff = f"{'-' if faster else '+'}{abs(self.fastest_sector_times[i]-self.sector_times[i]):.3f}"
text = self.font.render(f"Sector {i}: {self.sector_times[i]:.3f} | {diff}", True, color, colors.Black)
text = self.font.render(f"S{i}: {self.sector_times[i]:.3f} | {diff} | Fastest S{i}: {self.fastest_sector_times[i]:.3f}", True, color, colors.Black)
textRect = text.get_rect()
textRect.center = (textRect.center[0], textRect.center[1] + i * 24)
textRect.center = (textRect.center[0], textRect.center[1] + (i-1) * 24)
self.screen.blit(text, textRect)
text = self.font.render(f"Fastest Lap: {self.fastestLap:.3f}", True, colors.Green, colors.Black)
rect = text.get_rect()
rect.center = (rect.center[0], rect.center[1] + 72)
self.screen.blit(text, rect)
color = colors.Green if self.lapTimeValid else colors.Yellow
text = self.font.render(f'Current Lap: {"Valid" if self.lapTimeValid else "Invalid"}', True, color, colors.Black)
rect = text.get_rect()
rect.center = (rect.center[0], rect.center[1] + 96)
self.screen.blit(text, rect)
pygame.display.flip()
self.clock.tick(60)