-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathleaderboard.py
More file actions
73 lines (67 loc) · 2.12 KB
/
leaderboard.py
File metadata and controls
73 lines (67 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import os
import time
def playerAdjust(Buzzer):
if Buzzer == 0:
update_leaderboard('Player 1', 10)
elif Buzzer == 1:
update_leaderboard('Player 2', 10)
elif Buzzer == 2:
update_leaderboard('Player 3', 10)
elif Buzzer == 3:
update_leaderboard('Player 4', 10)
else:
print('PLAYER AJUST ERROR')
print(Buzzer)
def update_leaderboard(player_name, score):
entries = {}
if os.path.exists('leaderboard.txt'):
with open('leaderboard.txt', 'r', encoding='utf-8') as file:
for line in file:
line = line.strip()
if not line:
continue
if ':' in line:
name, sc = line.split(':', 1)
try:
entries[name] = int(sc)
except ValueError:
entries[name] = 0
# Add to existing score instead of replacing
previous = entries.get(player_name, 0)
try:
increment = int(score)
except ValueError:
increment = 0
entries[player_name] = previous + increment
with open('leaderboard.txt', 'w', encoding='utf-8') as file:
for name, sc in entries.items():
file.write(f"{name}:{sc}\n")
def read_leaderboard():
if not os.path.exists('leaderboard.txt'):
print('No leaderboard yet.')
return
with open('leaderboard.txt', 'r', encoding='utf-8') as file:
contents = file.read()
if contents:
print(contents)
else:
print('Leaderboard is empty.')
def reset_leaderboard():
if os.path.exists('leaderboard.txt'):
os.remove('leaderboard.txt')
else:
print('There is no Leaderboard to remove.')
def leaderboard_menu():
os.system('cls')
print('1) View Leaderboard 2) Clear Leaderboard 3) Return to Menu')
leadermenuInput = input('>> ')
if leadermenuInput == '1':
read_leaderboard()
time.sleep(1)
return
elif leadermenuInput == '2':
reset_leaderboard()
time.sleep(1)
return
elif leadermenuInput == '3':
return