-
Notifications
You must be signed in to change notification settings - Fork 0
/
leaderboard.py
153 lines (118 loc) · 3.6 KB
/
leaderboard.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# CS 3100 Team 8
# Spring 2021
#
# This file initializes the leaderboard database file to store high scores.
# It also provides several access functions to read from and modify the database.
#Import sqlite3 database tools
import sqlite3
def init_database():
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
#Table is created only on the first run of the app
try:
c.execute("""
CREATE TABLE Leaderboard (
entry_ID Integer PRIMARY KEY,
player_initials Text,
score Integer
)
""")
print("Table \'Leaderboard\' successfully created.")
except sqlite3.OperationalError:
print("Table \'Leaderboard\' already exists.")
#Commit changes
conn.commit()
#Close connection
conn.close()
return
def add_entry(name, score):
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
entry_data = (name, score)
c.execute("""INSERT INTO Leaderboard(player_initials, score) VALUES
(?, ?)""", entry_data)
# Commit changes
conn.commit()
#Close connection
conn.close()
return
def print_all_scores():
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
c.execute("SELECT entry_ID FROM Leaderboard")
ID_list = c.fetchall()
for x in ID_list:
c.execute("SELECT * FROM Leaderboard WHERE entry_ID=?", x)
info = c.fetchone()
print(info)
#Close connection
conn.close()
return
def return_top_ten():
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
c.execute("SELECT entry_ID FROM Leaderboard ORDER BY score DESC")
ID_list = c.fetchall()
# Append each entry to a new list
entries = []
for i in range(10):
if i < len(ID_list):
c.execute("SELECT * FROM Leaderboard WHERE entry_ID=?", ID_list[i])
info = c.fetchone()
entries.append(info)
#Close connection
conn.close()
return entries
def return_top_five():
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
c.execute("SELECT entry_ID FROM Leaderboard ORDER BY score DESC")
ID_list = c.fetchall()
# Append each entry to a new list
entries = []
for i in range(5):
if i < len(ID_list):
c.execute("SELECT * FROM Leaderboard WHERE entry_ID=?", ID_list[i])
info = c.fetchone()
entries.append(info)
#Close connection
conn.close()
return entries
def erase_nones():
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
c.execute("SELECT entry_ID FROM Leaderboard WHERE player_initials='none'")
ID_list = c.fetchall()
print(ID_list)
for x in ID_list:
print(x)
c.execute("DELETE FROM Leaderboard WHERE entry_ID=?", x)
#Close connection
conn.close()
return
def erase_entry(name):
#Connect to database info file
conn = sqlite3.connect("leaderboard.db")
#Create database cursor
c = conn.cursor()
c.execute("SELECT entry_ID FROM Leaderboard WHERE player_initials=?", name)
ID_list = c.fetchall()
print(ID_list)
for x in ID_list:
print(x)
c.execute("DELETE FROM Leaderboard WHERE entry_ID=?", x)
#Close connection
conn.close()
return