· 6 years ago · Jan 11, 2020, 01:36 AM
1import os
2import sqlite3
3import sign_up
4import login
5import game
6
7def create():
8 # Creates a database in RAM
9 db = sqlite3.connect(':memory:')
10 # Creates a file called users.sqlite with a SQLite3 DB
11 db = sqlite3.connect('Dice_game/users.sqlite')
12
13 # Get a cursor object
14 cursor = db.cursor()
15 cursor.execute('''
16 CREATE TABLE users(username TEXT,
17 password TEXT,
18 highscore INTEGER,
19 wins INTEGER,
20 loses INTEGER)
21 ''') # Creates 5 values in the table
22 for x in range(5):
23 username = ("Player" + str((x+1)))
24 password = "password"
25 highscore = 0
26 wins = 0
27 loses = 0
28 cursor.execute('''INSERT INTO users(username, password, highscore, wins, loses)
29 VALUES(?,?,?,?,?)''', (username, password, highscore, wins, loses))
30 db.commit()
31 db.close()
32 game.menu()
33
34def exist():
35 filename = ("Dice_game/users.sqlite")
36 db_exists = not os.path.exists(filename)
37 db = sqlite3.connect(filename)
38
39 if db_exists:
40 create()
41 else:
42 game.menu()
43
44 '''
45 check if server exists
46 if it does
47 go to menu
48 if not
49 create db
50 '''
51
52def new(username, password):
53 db = sqlite3.connect("Dice_game/users.sqlite") # Opens db
54 cursor = db.cursor()
55 username = username
56 password = password
57 highscore = 0
58 wins = 0
59 loses = 0
60
61 cursor.execute('''INSERT INTO users(username, password, highscore, wins, loses)
62 VALUES(?,?,?,?,?)''', (username, password, highscore, wins, loses)) # Adds new data to the table
63 db.commit() # Adds it to the db
64 db.close() # Closes the db
65
66def delete(username, password):
67 db = sqlite3.connect("Dice_game/users.sqlite") # Opens db
68 cursor = db.cursor()
69 cursor.execute('''DELETE FROM users WHERE username = (?) AND password = (?)''', (username, password))
70 db.commit() # Adds it to the db
71 db.close() # Closes the db
72 print("Account deleted")
73
74def highscore(username, highscore):
75 db = sqlite3.connect("Dice_game/users.sqlite")
76 cursor = db.cursor()
77 cursor.execute('''SELECT highscore FROM users WHERE username = ?''', (username,))
78 user = cursor.fetchone()
79 hs = user[0]
80
81 if hs > highscore or hs == highscore:
82 print("No knew highscore")
83 else:
84 update_hs(username, highscore)
85
86def update_hs(username, highscore):
87 db = sqlite3.connect("Dice_game/users.sqlite")
88 cursor = db.cursor()
89 cursor.execute('''UPDATE users SET highscore = ? WHERE username = ? ''', (highscore, username))
90 db.commit()
91 db.close()
92 print("Highscore saved")
93
94def update_p(password_new, username, password):
95 db = sqlite3.connect("Dice_game/users.sqlite")
96 cursor = db.cursor()
97 cursor.execute('''UPDATE users SET password = ? WHERE username = ? AND password = ?''', (password_new, username, password))
98 db.commit()
99 db.close()
100 print("Password changed")
101
102def username_check(username):
103 db = sqlite3.connect("Dice_game/users.sqlite")
104 cursor = db.cursor()
105 cursor.execute('''SELECT username FROM users WHERE username = ?''', (username,))
106 user = cursor.fetchone()
107
108 if user is None:
109 print("Username available")
110 sign_up.password(username)
111 db.commit()
112 else:
113 print("This username already exists")
114 sign_up.username()
115 db.commit()
116
117 db.close()
118
119
120def info(username):
121 db = sqlite3.connect("Dice_game/users.sqlite")
122 cursor = db.cursor()
123 cursor.execute('''SELECT username, highscore, wins, loses FROM users WHERE username = ?''', (username,))
124 user = cursor.fetchone()
125 print("Name: " + user[0] + "\nHighscore: " + str(user[1]) + "\nWins: " +str(user[2]) + "\n Loses: " + str(user[3]))
126
127 db.commit()
128 db.close()
129
130def info_all():
131 db = sqlite3.connect("Dice_game/users.sqlite")
132 cursor = db.cursor()
133 cursor.execute('''SELECT username, highscore FROM users''')
134 all_rows = cursor.fetchall()
135 all_rows = sorted(all_rows, key=lambda x: x[1], reverse=True)# sorts by second value in reverse order
136 table = []
137 for row in all_rows:
138 # row[0] returns username, row[1] shows highscore
139 table.append(f"{row[0]}: {row[1]}")
140 for x in range(5):
141 print(table[x])
142
143 db.commit()
144 db.close()
145
146
147def log_in_1(username, password):
148 db = sqlite3.connect("Dice_game/users.sqlite")
149 cursor = db.cursor()
150 cursor.execute('''SELECT username, password FROM users WHERE username = ? AND password = ?''', (username, password,))
151 user = cursor.fetchone()
152
153 if user is not None:
154 print("Welcome to the Dice Game " + username + ", you are PLAYER 1")
155 player1 = username
156 login.login_2(player1)
157 else:
158 print("The username and password do not match, please try again")
159 login.login_1()
160
161 db.commit()
162 db.close()
163
164
165def log_in_2(player1, username, password):
166 db = sqlite3.connect("Dice_game/users.sqlite")
167 cursor = db.cursor()
168 cursor.execute('''SELECT username, password FROM users WHERE username = ? AND password = ?''', (username, password,))
169 user = cursor.fetchone()
170
171 if user is not None:
172 print("Welcome to the Dice Game " + username + ", you are PLAYER 2")
173 game.game(player1, username)
174 else:
175 print("The username and password do not match, please try again")
176 login.login_2(player1)
177
178 db.commit()
179 db.close()
180
181
182def account(username, password):
183 db = sqlite3.connect("Dice_game/users.sqlite")
184 cursor = db.cursor()
185 cursor.execute('''SELECT username, password FROM users WHERE username = ? AND password = ?''', (username, password,))
186 user = cursor.fetchone()
187
188 if user is not None:
189 print("Welcome to the Dice Game, " + username + "\n")
190 login.login_menu(username, password)
191 else:
192 print("The username and password do not match, please try again")
193 login.account()
194
195 db.commit()
196 db.close()
197
198def wins(username):
199 db = sqlite3.connect("Dice_game/users.sqlite")
200 cursor = db.cursor()
201 cursor.execute('''Select wins FROM users WHERE username = ?''', (username,))
202 user = cursor.fetchone()
203 wins = user[0] + 1
204 cursor.execute('''UPDATE users SET wins = ? WHERE username = ?''', (wins, username))
205 db.commit()
206 db.close()
207
208def loses(username):
209 db = sqlite3.connect("Dice_game/users.sqlite")
210 cursor = db.cursor()
211 cursor.execute('''Select loses FROM users WHERE username = ?''', (username,))
212 user = cursor.fetchone()
213 loses = user[0] + 1
214 cursor.execute('''UPDATE users SET loses = ? WHERE username = ?''', (loses, username))
215 db.commit()
216 db.close()