· 4 years ago · Aug 27, 2021, 11:16 AM
1from random import randrange
2import sqlite3
3from sqlite3.dbapi2 import Connection
4
5
6def createDatabase():
7 conn = sqlite3.connect('sql_database.db')
8 c = conn.cursor()
9 c.execute(
10 'CREATE TABLE IF NOT EXISTS leaderboard(name text, guessing_attempts int)')
11 conn.commit()
12 conn.close()
13
14
15def insertIntoDatabse(number):
16 name = input('winner name is: ')
17 conn = sqlite3.connect('sql_database.db')
18 c = conn.cursor()
19 c.execute('INSERT INTO leaderboard VALUES (?, ?)', (name, number))
20 conn.commit()
21 conn.close()
22
23
24def showDatabse():
25 conn = sqlite3.connect('sql_database.db')
26 c = conn.cursor()
27 c.execute(
28 'SELECT name, guessing_attempts FROM leaderboard ORDER BY guessing_attempts ASC')
29 conn.commit()
30 print("------------")
31 print("LEADERBOARD")
32 print("------------")
33 for name, guessing_attempts in c:
34 print(name, " | ", guessing_attempts, " | ")
35 print("------------")
36 conn.close()
37
38
39def main():
40 createDatabase()
41 npc = RandomNpc()
42 answer = False
43 while answer == False:
44 number = int(input())
45 answer = npc.checkNumber(number)
46 insertIntoDatabse(npc.counter)
47 showDatabse()
48
49class RandomNpc:
50 def __init__(self) -> None:
51 self.random_number = randrange(10)
52 self.counter = 0
53
54 def checkNumber(self, number):
55 self.counter += 1
56 if self.random_number == number:
57
58 print('correct')
59 return True
60 if self.random_number < number:
61 print('too big')
62 return False
63 else:
64 print('too small')
65 return False
66
67
68if __name__ == "__main__":
69 # execute only if run as a script
70 main()
71