Загрузка данных
import sqlite3, random, hashlib
def md5sum(value):
return hashlib.md5(value.encode()).hexdigest
with sqlite3.connect("database.db") as db:
cursor = db.cursor()
query = """
CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(30),
age INTEGER(2),
balance INTEGER NOT NULL DEFAULT 2000,
login VARCHAR(15),
password VARCHAR(20)
);
CREATE TABLE IF NOT EXISTS casino(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(50),
descriprion TEXT(300),
balance BIGINT NOT NULL DEFAULT 10000
)
"""
cursor.executescript(query)
def registration():
name = input("Имя: ")
age = int(input("Возраст: "))
login = input("Логин: ")
password = input("Пароль: ")
try:
db = sqlite3.connect("database.db")
cursor = db.cursor()
cursor.execute("SELECT login FROM users WHERE login = ?", [login])
if cursor.fetchone() is None:
values = [name, age, login, password]
cursor.execute("INSERT INTO users(name, age, login, password) VALUES(?, ?, ?, ?)", values)
db.commit()
else:
print("Такой логин уже существует!")
ch=input('введите 1 для повторной регистрации, 2 для входа в аккаунт')
if ch=='1': registration()
elif ch=='2': log_in()
except sqlite3.Error as e:
print("Error", e)
finally:
cursor.close()
db.close()
def log_in():
login = input("Логин: ")
password = input("Пароль: ")
try:
db = sqlite3.connect("database.db")
cursor = db.cursor()
db.create_function("md5", 1, md5sum)
cursor.execute("SELECT login FROM users WHERE login = ?", [login])
if cursor.fetchone() is None:
print("Такого логина не существует")
ch=input('введите 1 для регистрации, 2 для повторной попытки')
if ch==1: registration()
elif ch==2: log_in()
else:
cursor.execute("SELECT password FROM users WHERE login = ? AND password = md5(?)", [login, password])
if cursor.fetchone() is None:
print("Пароль неверный")
else:
play_casino(login)
except sqlite3.Error as e:
print("Error", e)
finally:
cursor.close()
db.close()
def play_casino(login):
print("Игра началась")
try:
db = sqlite3.connect("database.db")
cursor = db.cursor()
cursor.execute("SELECT age FROM users WHERE login =? AND age >= ?", [login, 18])
if cursor.fetchone() is None:
print("Вам недостаточно лет!")
else:
bet = int(input("Ваша ставка: "))
number = random.randint(1, 100)
balance = cursor.execute("SELECT balance FROM users WHERE login = ?", [login]).fetchone()[0]
if balance < bet:
print("Не хватает денег!")
else:
if number < 50:
cursor.execute("UPDATE users SET balance = balance - ? WHERE login = ?", [bet, login])
cursor.execute("UPDATE casino SET balance = balance + ?", [bet])
print("Ты проиграл :(")
else:
cursor.execute("UPDATE users SET balance = balance + ? WHERE login = ?", [bet, login])
cursor.execute("UPDATE casino SET balance = balance - ?", [bet])
print("Ура, победа!")
except sqlite3.Error as e:
print("Error", e)
finally:
cursor.close()
db.close()
registration()
log_in()