Загрузка данных


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()