From 95ef0874facce25642b0f540e306b1aae6d22836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D1=83=D0=BB=D1=8F=D0=BF=D0=B8=D0=BD=20=D0=90=D0=BD?= =?UTF-8?q?=D0=B4=D1=80=D0=B5=D0=B9=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B5?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= <102686873+Andreykah@users.noreply.github.com> Date: Tue, 20 Dec 2022 10:32:55 +0300 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit добавил целую одну запись в бд: [2, 2, 2, 2] добавил проверку на наличие необходимых ресурсов перед налитием, также расход ресурсов при налитии и вывод соответствующих сообщений мелкие изменения вроде пустых строк между функциями --- DataBase.db | Bin 8192 -> 8192 bytes DataBase.py | 27 +++++++++------- main.py | 91 +++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 91 insertions(+), 27 deletions(-) diff --git a/DataBase.db b/DataBase.db index d8fec1aef6605dcb8d68326c8310fa3beb4f4de6..9591bd673db8c86aae37fde83e93c3f4d626d260 100644 GIT binary patch delta 60 zcmZp0XmFSy&B!!S#+jdqK`)tsmw|zSk$(aM|Aftg0!sXoC-9fBG4g+9;QtEbzvk!W MWMpLo0wy2;0E_Aiy8r+H delta 47 zcmZp0XmFSy&B!=W#+jdyK`-2kmw|zSk$(aM|Aftg0!sXoC-9drF$e(JPxvP`hyeij C4+``E diff --git a/DataBase.py b/DataBase.py index 47764f4..a3eb067 100644 --- a/DataBase.py +++ b/DataBase.py @@ -4,22 +4,27 @@ def __init__(self): self.conn = sqlite3.connect('DataBase.db') self.c = self.conn.cursor() self.c.execute( - '''CREATE TABLE IF NOT EXISTS DataBase (water integer, gas integer, lemon integer, cherry integer)''') + '''CREATE TABLE IF NOT EXISTS DataBase ( + water integer, gas integer, lemon integer, cherry integer + )''') self.conn.commit() - def update(self): - print('1') + self.conn.close() + #def update(self): + # print('1') def read_db(self): + self.conn = sqlite3.connect('DataBase.db') + self.c = self.conn.cursor() self.c.execute('''SELECT * FROM DataBase''') - records = self.DB.c.fetchall() - water = 1 - gas = 3 - cherry = 3 + records = self.c.fetchall() + water = 0 + gas = 0 + cherry = 0 lemon = 0 - print(records) for column in records: water=column[0] gas=column[1] - print(water, gas, cherry, lemon) - - return {'water' : water, 'gas' : gas, 'cherry':cherry, 'lemon':lemon} \ No newline at end of file + cherry = column[2] + lemon = column[3] + return {'water' : water, 'gas' : gas, 'cherry':cherry, 'lemon':lemon} + self.conn.close() diff --git a/main.py b/main.py index 2e6d6e4..4bd04ab 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,5 @@ import tkinter as tk +from faulthandler import disable from tkinter import ttk from time import sleep import DataBase as DB @@ -22,7 +23,7 @@ def __init__(self): self.master.geometry('250x400+900+500') - def initUI(self): + def initUI(self, disabled=None): self.columnconfigure([0, 1, 2, 3], weight=1, minsize=400, pad=3) self.rowconfigure([0, 1, 2, 3, 4], weight=1, minsize=250, pad=3) @@ -56,12 +57,15 @@ def initUI(self): btn_money_10 = tk.Button(self.master, text='+10', command=self.add10_cash) btn_money_10.grid(row=11, column=1, sticky='w') - btn_go = tk.Button(self.master, text='Налить', command=self.fill_glass) + btn_go = tk.Button(self.master, text='Налить', command= lambda: self.fill_glass()) btn_go.grid(row=12, column=1, sticky='') btn_get_change = tk.Button(self.master, text='Получить сдачу', command=self.get_change) btn_get_change.grid(row=13, column=1, sticky='s') + space_for_message = tk.Label(self.master, text='') + space_for_message.grid(row=6, column=1, sticky='sw') + def add2_cash(self): self.cash += 2 self.label_money.config(text=f'баланс:\n {self.cash}') @@ -91,27 +95,82 @@ def choose_syrup(self, syrup): self.syrup_selected['no_syrup'] = False self.syrup_selected['cherry'] = False self.syrup_selected['lemon'] = True - if self.storage['water'] <= 0: - self.destroy() + def get_data(self): self.storage = self.DB.read_db() + def fill_glass(self): if (self.cash > 0): - color = ' ' if (self.syrup_selected['no_syrup'] and self.cash >= self.price['no_syrup']): - color = '#FFEFD5' - self.cash -= self.price['no_syrup'] - self.progress(color) - self.storage['water']--1 - print(self.storage['water']) + if (self.cheak() == 1): + color = '#FFEFD5' + self.cash -= self.price['no_syrup'] + self.storage['water'] -= 2 + self.storage['gas'] -= 1 + self.progress(color) if (self.syrup_selected['lemon'] and self.cash >= self.price['lemon']): - color = 'yellow' - self.cash -= self.price['lemon'] - self.progress(color) + if (self.cheak() == 1): + color = 'yellow' + self.cash -= self.price['lemon'] + self.storage['water'] -= 1 + self.storage['lemon'] -= 1 + self.storage['gas'] -= 1 + self.progress(color) if (self.syrup_selected['cherry'] and self.cash >= self.price['cherry']): - color = 'red' - self.cash -= self.price['cherry'] - self.progress(color) + if (self.cheak() == 1): + color = 'red' + self.cash -= self.price['cherry'] + self.storage['water'] -= 1 + self.storage['cherry'] -= 1 + self.storage['gas'] -= 1 + self.progress(color) + + def cheak(self): + if (self.storage['gas'] <= 0): + message = tk.Label(self.master, text='Не хватает газа') + message.grid(row=6, column=1, sticky='sw') + return 0 + else: + if (self.storage['water'] <= 0): + message = tk.Label(self.master, text='Не хватает воды') + message.grid(row=6, column=1, sticky='sw') + return 0 + + else: + if (self.syrup_selected['cherry']): + if (self.storage['cherry'] <= 0): + message = tk.Label(self.master, text='Не хватает воды или вишневого сиропа') + message.grid(row=6, column=1, sticky='sw') + return 0 + else: + message = tk.Label(self.master, text='') + message.grid(row=6, column=1, sticky='sw') + return 1 + + if (self.syrup_selected['lemon']): + if (self.storage['lemon'] <= 0): + message = tk.Label(self.master, text='Не хватает воды или ломонного сиропа') + message.grid(row=6, column=1, sticky='sw') + return 0 + else: + message = tk.Label(self.master, text='') + message.grid(row=6, column=1, sticky='sw') + return 1 + + if (self.syrup_selected['no_syrup']): + if (self.storage['water'] <= 1): + message = tk.Label(self.master, text='Не хватает воды на полный стакан') + message.grid(row=6, column=1, sticky='sw') + return 0 + else: + message = tk.Label(self.master, text='') + message.grid(row=6, column=1, sticky='sw') + return 1 + + else: + message = tk.Label(self.master, text='Ничего не выбрано') + message.grid(row=6, column=1, sticky='sw') + return 0 def progress(self, color): s = ttk.Style()