Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import PySimpleGUI as sg
- import math
- import matplotlib
- import matplotlib.pyplot as plt
- import numpy as np
- import random
- from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
- #Количество знаков после запятой
- def toFixed(numObj, digits=2):
- return f"{numObj:.{digits}f}"
- #Вспомогательная функция вывода рисунка в canvas
- def draw_figure_w_toolbar(canvas, fig, canvas_toolbar):
- if canvas.children:
- for child in canvas.winfo_children():
- child.destroy()
- if canvas_toolbar.children:
- for child in canvas_toolbar.winfo_children():
- child.destroy()
- figure_canvas_agg = FigureCanvasTkAgg(fig, master=canvas)
- figure_canvas_agg.draw()
- toolbar = Toolbar(figure_canvas_agg, canvas_toolbar)
- toolbar.update()
- figure_canvas_agg.get_tk_widget().pack(side='right', fill='both', expand=1)
- class Toolbar(NavigationToolbar2Tk):
- def __init__(self, *args, **kwargs):
- super(Toolbar, self).__init__(*args, **kwargs)
- def get_t_c():
- return t_m + t_vis + t_p + t_r + t_t
- def get_L_q():
- return lambd**2*1./(mu*(mu-lambd))
- def get_L():
- return get_L_q() + lambd/mu
- def get_w_q():
- return get_L_q()/lambd
- def get_w():
- return get_w_q() + 1/mu
- def get_C_p():
- return C_w*get_L() + C_b * get_w() + C_r * get_w_q() + C_i * get_L_q()+ C_s
- def calc():
- ro = lambd/mu
- L_q = get_L_q()
- L = get_L()
- w_q = get_w_q()
- w = get_w()
- cost = get_C_p()
- return cost
- def check(values):
- if (values['-IN1-'] == '') or (values['-IN2-'] == '') or (values['-IN3-'] == '') or (values['-IN4-'] == '') or (values['-IN5-'] == '') or (values['-IN6-'] == '') or (values['-IN7-'] == '') or (values['-IN8-'] == '') or (values['-IN9-'] == '') or (values['-IN10-'] == '') or (values['-IN11-'] == ''):
- return False
- else:
- return True
- def layout0():
- global cost
- global fl
- global mu
- global lambd
- global val
- layout_l = [
- [sg.Text('Введите диапазон:', size=(40, 1), key="-OUT-")],
- [sg.Text('λ min'), sg.Slider((0.05, mu-0.1), orientation='h', resolution = 0.01, enable_events=True, key='-SLIDER-')],
- [sg.Text('λ max'), sg.Slider((0.25, mu-0.5), orientation='h', resolution = 0.01, enable_events=True, key='-SLIDER3-')],
- [sg.T('Панель управления:')],
- [sg.Canvas(key='controls_cv')],
- [sg.T('График зависимости функции стоимости от интенсивности входящего потока λ:')],
- [sg.Column(
- layout=[
- [sg.Canvas(key='fig_cv',
- size=(350 * 2, 400)
- )]
- ],
- background_color='#DAE0E6',
- pad=(0, 0)
- )]]
- layout_r = [
- [sg.B('Регулировка функции стоимости')],
- [sg.B('Зависимость стац. хар. от и λ', size = (25, 1), key = '2')],
- [sg.B('Значение функции стоимости', size = (25, 1), key = '1')],
- [sg.B('Изменить входные данные', size = (25,1), key = 'input')],
- [sg.T(50*'-')],
- [sg.B('Посторить график', size = (14, 1)), sg.B('Очистить', size=(9, 1))],
- [sg.B('Показать сетку', size = (25, 1))],
- [sg.B('Закрыть', size = (25, 1))],
- [sg.T('')],
- [sg.Image(r'C:\Users\danul\Desktop\diploma\Robot2.png', size = (255, 295))],
- ]
- layout = [[sg.Col(layout_l), sg.Col(layout_r)]]
- window = sg.Window('Система M/Gi/1. График функции стоимости от λ', layout)
- while True:
- event, values = window.read()
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (event == 'Показать сетку'):
- plt.grid()
- fig = plt.gcf()
- draw_figure_w_toolbar(window['fig_cv'].TKCanvas, fig, window['controls_cv'].TKCanvas)
- if (event == '0'):
- val = 0
- break
- if (event == '1'):
- val = 1
- break
- if (event == '2'):
- val = 2
- break
- if (event == 'input'):
- val = 4
- break
- if (event == 'Регулировка функции стоимости'):
- layout3()
- if event in (sg.WIN_CLOSED, 'Закрыть'): # always, always give a way out!
- fl = True
- break
- l = values['-SLIDER-']
- h = 0.01
- r = values['-SLIDER3-']
- if event == 'Очистить':
- plt.gcf().clear()
- fig = plt.gcf()
- plt.title('Зависимость функции стоимости от интенсивности входящего потока')
- plt.xlabel('λ')
- plt.ylabel('Функция стоимости')
- draw_figure_w_toolbar(window['fig_cv'].TKCanvas, fig, window['controls_cv'].TKCanvas)
- if event == 'Посторить график':
- if (r - l < 0.2):
- if (r < l):
- window["-OUT-"].update('λ min не может быть больше λ max')
- else:
- window["-OUT-"].update('Cлишком маленький интервал')
- else:
- window["-OUT-"].update('Введите диапазон:')
- plt.figure(1)
- fig = plt.gcf()
- DPI = fig.get_dpi()
- fig.set_size_inches(350 * 2 / float(DPI), 400 / float(DPI))
- # -------------------------------
- x = []
- y = []
- lambd = l
- print(h)
- while(lambd < r):
- lambd = lambd + h
- C_p = calc()
- y.append(C_p)
- x.append(lambd)
- plt.plot(x, y)
- plt.title('Зависимость функции стоимости от интенсивности входящего потока')
- plt.xlabel('λ')
- plt.ylabel('Функция стоимости')
- # ------------------------------- Instead of plt.show()
- draw_figure_w_toolbar(window['fig_cv'].TKCanvas, fig, window['controls_cv'].TKCanvas)
- window.close()
- def layout1():
- global cost
- global fl
- global mu
- global lambd
- global s
- global val
- layout = [
- [sg.Text(f'Значение функции стоимости : -',size=(40, 1), key="-OUT-")],
- [sg.Text('Введите интенсивность входящего потока'), sg.InputText(size = (10, 1))],
- [sg.T(" "), sg.B('График функции стоимости', key = '0', size = (24, 1))],
- [sg.T(" "),sg.Button('Зависимость стац. хар. от и λ', key = '2', size = (24, 1))],
- [sg.T(" "),sg.B('Изменить входные данные', size = (24,1), key = 'input')],
- [sg.T(" "),sg.Button('Применить', size = (11, 1), key = 'Ok'), sg.Button('Закрыть', size = (11, 1)), ]
- ]
- window = sg.Window('Система M/Gi/1. Значение функции стоимости', layout)
- while True:
- event, values = window.read()
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (event == '0'):
- val = 0
- break
- if (event == '2'):
- val = 2
- break
- if (event == 'input'):
- val = 4
- break
- if event == 'Ok':
- if (len(values[0]) > 0 and float(values[0]) < mu - 0.1):
- lambd = float(values[0])
- cost = calc()
- cost = toFixed(cost, 2)
- window["-OUT-"].update(f'Значение функции стоимости : {cost}')
- else:
- window["-OUT-"].update('Интенсивность входящего потока слишком велика')
- window.close()
- def layout2():
- global cost
- global fl
- global mu
- global lambd
- global s
- global val
- layout = [[sg.Text('Зависимость стационарных характеристик от интенсивности входящего потока λ', justification='center', size=(65, 1), relief=sg.RELIEF_SUNKEN)],
- [sg.T(" "), sg.Text(f'Коэффициент использования: -', size=(40, 1), key="-OUT-")],
- [sg.T(" "), sg.Text(f'М.о. числа требований в очереди: -', size=(40, 1), key="-OUT1-")],
- [sg.T(" "), sg.Text(f'М.о. числа требований в системе: -', size=(40, 1), key="-OUT2-")],
- [sg.T(" "), sg.Text(f'М.о. времени пребывания в очереди: -', size=(40, 1), key="-OUT3-")],
- [sg.T(" "), sg.Text(f'М.о. времени пребывания в системе: -', size=(40, 1), key="-OUT4-")],
- [sg.T(" "), sg.Text('λ'), sg.Slider((0.05, mu-0.2), orientation='h', resolution = 0.01, enable_events=True, key='-SLIDER-')],
- [sg.T(" "), sg.B('График функции стоимости', key = '0', size = (25, 1))],
- [sg.T(" "), sg.Button('Значение функции стоимости', key = '1', size = (25, 1))],
- [sg.T(" "), sg.B('Изменить входные данные', size = (25,1), key = 'input')],
- [sg.T(" "), sg.Button('Закрыть', size = (25, 1))]
- ]
- window = sg.Window('Система M/Gi/1. Зависимость стационарных характеристик от λ', layout)
- while True:
- _lambd = lambd
- event, values = window.read()
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (event == '0'):
- val = 0
- break
- if (event == '1'):
- val = 1
- break
- if (event == '2'):
- val = 2
- break
- if (event == 'input'):
- val = 4
- break
- lambd = values['-SLIDER-']
- rho = toFixed(lambd/mu)
- L_q = toFixed(get_L_q())
- L = toFixed(get_L())
- w = toFixed(get_w())
- w_q = toFixed(get_w_q())
- window["-OUT-"].update(f'Коэффициент использования:{rho}')
- window["-OUT1-"].update(f'М.о. числа требований в очереди:{L_q}')
- window["-OUT2-"].update(f'М.о. числа требований в системе:{L}')
- window["-OUT3-"].update(f'М.о. времени пребывания в очереди:{w_q}')
- window["-OUT4-"].update(f'М.о. времени пребывания в системе:{w}')
- lambd = _lambd
- window.close()
- def layout3():
- global cost
- global fl
- global mu
- global lambd
- global val
- global C_s
- global C_w
- global C_b
- global C_r
- global C_i
- layout = [
- [sg.Text('Введите данные:', key="-OUT-"), sg.B('Показать/скрыть базовые значения:', key = '-SH-'), sg.Checkbox('Зафиксировать',default = False, key ="-IN-")],
- [sg.Text('C_s '), sg.Slider((0.0, 1.0), orientation='h', resolution = 0.01, enable_events=True, key='-SLIDER1-'), sg.Text('', key="-Base1-")],
- [sg.Text('C_w'), sg.Slider((0.0, 100), orientation='h', resolution = 1, enable_events=True, key='-SLIDER2-'), sg.Text('', key="-Base2-")],
- [sg.Text('C_b'), sg.Slider((0.0, 1.0), orientation='h', resolution = 0.01, enable_events=True, key='-SLIDER3-'), sg.Text('', key="-Base3-")],
- [sg.Text('C_r '), sg.Slider((0.0, 100), orientation='h', resolution = 1, enable_events=True, key='-SLIDER4-'), sg.Text('', key="-Base4-")],
- [sg.Text('C_i '), sg.Slider((0.0, 100), orientation='h', resolution = 1, enable_events=True, key='-SLIDER5-'), sg.Text('', key="-Base5-")],
- [sg.B('Посторить график', size = (14, 1)), sg.B('Очистить', size=(9, 1))],
- [sg.B('Показать сетку', size = (14, 1)),sg.B('Вернуться', size = (9, 1))],
- [sg.T('Панель управления:')],
- [sg.Canvas(key='controls_cv2')],
- [sg.T('График зависимости функции стоимости от интенсивности входящего потока λ:')],
- [sg.Column(
- layout=[
- [sg.Canvas(key='fig_cv2',
- # it's important that you set this size
- size=(400 * 2, 400)
- )]
- ],
- background_color='#DAE0E6',
- pad=(0, 0)
- )],
- ]
- window = sg.Window('Система M/Gi/1. Регулировка отдельных элементов функции стоимости', layout)
- flag_sh = True
- while True:
- event, values = window.read()
- if (event == 'Показать сетку'):
- plt.grid()
- fig = plt.gcf()
- draw_figure_w_toolbar(window['fig_cv2'].TKCanvas, fig, window['controls_cv2'].TKCanvas)
- if event == 'Очистить':
- plt.gcf().clear()
- fig = plt.gcf()
- plt.title('Зависимость функции стоимости от интенсивности входящего потока')
- plt.xlabel('λ')
- plt.ylabel('Функция стоимости')
- draw_figure_w_toolbar(window['fig_cv2'].TKCanvas, fig, window['controls_cv2'].TKCanvas)
- if (event == 'Вернуться'):
- if (values["-IN-"] == False):
- C_w = 50
- C_b = 0.1
- C_r = 60
- C_i = 10
- C_s = 0.5
- break
- if (event == '-SH-'):
- if (flag_sh == False):
- flag_sh = True
- window['-Base1-'].Update('')
- window['-Base2-'].Update('')
- window['-Base3-'].Update('')
- window['-Base4-'].Update('')
- window['-Base5-'].Update('')
- else:
- flag_sh = False
- window['-Base1-'].Update('= 0.5 стоимость сервера(робота)')
- window['-Base2-'].Update('= 50 стоимость нахождения деталей в очереди')
- window['-Base3-'].Update('= 0.1 стоимость IDLE робота')
- window['-Base4-'].Update('= 60 cтоимость простоя робота')
- window['-Base5-'].Update('= 10 cтоимость возврата детали для подбора')
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (flag_sh):
- C_s = values['-SLIDER1-']
- C_w = values['-SLIDER2-']
- C_b = values['-SLIDER3-']
- C_r = values['-SLIDER4-']
- C_i = values['-SLIDER5-']
- else:
- C_w = 50
- C_b = 0.1
- C_r = 60
- C_i = 10
- C_s = 0.5
- if event == 'Посторить график':
- l = 0.1
- h = 0.01
- r = mu - 0.5
- lambd = l
- # ------------------------------- PASTE YOUR MATPLOTLIB CODE HERE
- plt.figure(2)
- fig = plt.gcf()
- x = []
- y = []
- while(lambd < r):
- lambd = lambd + h
- C_p = calc()
- y.append(C_p)
- x.append(lambd)
- plt.plot(x, y)
- plt.title('Зависимость функции стоимости от интенсивности входящего потока')
- plt.xlabel('λ')
- plt.ylabel('Функция стоимости')
- #print(y)
- # ------------------------------- Instead of plt.show()
- draw_figure_w_toolbar(window['fig_cv2'].TKCanvas, fig, window['controls_cv2'].TKCanvas)
- window.close()
- def layout4():
- global fl
- global mu
- global lambd
- global val
- global t_m
- global t_vis
- global t_p
- global t_r
- global t_t
- global d
- global a
- global w
- global v
- layout_r = [
- [sg.B('Показать и применить базовые значения', key = '-S-')],
- [sg.B('Скрыть и отменить базовые значения', size =(31, 1), key = '-H-')],
- [sg.B('Вычисление пропускной способности', size = (31, 1))],
- [sg.B('Применить'), sg.B('Продолжить', size = (9, 1)), sg.B('Закрыть', size = (9, 1))],
- [sg.Image(r'C:\Users\danul\Desktop\diploma\Robot.png', size = (255, 195))]
- ]
- layout_l = [
- [sg.Text('Входные данные:',size=(15, 1)), sg.Text('', size = (25, 2), key = '-Error-')],
- [sg.Text('λ = '), sg.InputText(key = '-IN1-', size = (5, 1)), sg.T('', key = '-Base1-')],
- [sg.Text('μ = '), sg.InputText(key = '-IN2-', size = (5, 1)), sg.T('', key = '-Base2-')],
- [sg.Text('t_m = '), sg.InputText(key = '-IN3-', size = (5, 1)), sg.T('', key = '-Base3-')],
- [sg.Text('t_vis ='), sg.InputText(key = '-IN4-', size = (5, 1)), sg.T('', key = '-Base4-') ],
- [sg.Text('t_p = '), sg.InputText(key = '-IN5-', size = (5, 1)), sg.T('', key = '-Base5-')],
- [sg.Text('t_r = '), sg.InputText(key = '-IN6-', size = (5, 1)), sg.T('', key = '-Base6-')],
- [sg.Text('t_t = '), sg.InputText(key = '-IN7-', size = (5, 1)), sg.T('', key = '-Base7-')],
- [sg.Text('d = '), sg.InputText(key = '-IN8-', size = (5, 1)), sg.T('', key = '-Base8-')],
- [sg.Text('a = '), sg.InputText(key = '-IN9-', size = (5, 1)), sg.T('', key = '-Base9-')],
- [sg.Text('W = '), sg.InputText(key = '-IN10-', size = (5, 1)), sg.T('', key = '-Base10-')],
- [sg.Text('v = '), sg.InputText(key = '-IN11-', size = (5, 1)), sg.T('', key = '-Base11-')],
- ]
- layout = [[sg.Col(layout_l), sg.Col(layout_r)]]
- window = sg.Window('Система M/Gi/1. Входные данные', layout, finalize=True, keep_on_top=True)
- valuesSet = False
- while True:
- event, values = window.read()
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (event == 'Продолжить'):
- if (valuesSet == True):
- val = 0
- break
- else:
- window["-Error-"].update('Ошибка: нажмите "Применить".')
- if (event == 'Вычисление пропускной способности'):
- if (valuesSet == True):
- val = 5
- break
- else:
- window["-Error-"].update('Ошибка: нажмите "Применить".')
- if (event == '-S-'):
- valuesSet = True
- lambd = 0.5
- mu = 4
- t_m = 0.13
- t_vis = 0.1
- t_p = 0.12
- t_r = 0.125
- t_t = 0.153
- w = 250
- d = 14.4
- a = d/2
- v = 256
- window['-Base1-'].Update('= 0.5')
- window['-Base2-'].Update('= 4')
- window['-Base3-'].Update('= 0.13')
- window['-Base4-'].Update('= 0.1')
- window['-Base5-'].Update('= 0.12')
- window['-Base6-'].Update('= 0.125')
- window['-Base7-'].Update('= 0.153')
- window['-Base8-'].Update('= 14.4')
- window['-Base9-'].Update('= 7.2')
- window['-Base10-'].Update('= 250')
- window['-Base11-'].Update('= 256')
- if (event == '-H-'):
- valuesSet = False
- lambd = 0
- mu = 0
- t_m = 0
- t_vis = 0
- t_p = 0
- t_r = 0
- t_t = 0
- w = 0
- d = 0
- a = 0
- v = 0
- window['-Base1-'].Update('')
- window['-Base2-'].Update('')
- window['-Base3-'].Update('')
- window['-Base4-'].Update('')
- window['-Base5-'].Update('')
- window['-Base6-'].Update('')
- window['-Base7-'].Update('')
- window['-Base8-'].Update('')
- window['-Base9-'].Update('')
- window['-Base10-'].Update('')
- window['-Base11-'].Update('')
- if event == 'Применить':
- valuesSet = False
- if (check(values) == False):
- window["-Error-"].update('Ошибка: Заполните все поля')
- continue
- if (float(values['-IN1-']) > float(values['-IN2-']) - 0.1):
- print(float(values['-IN1-']))
- elif (float(values['-IN2-']) <= 0.05):
- window["-Error-"].update('Ошибка: значение μ должно быть больше 0.05')
- elif (d == 0 or a == 0 or w == 0 or v == 0):
- window["-Error-"].update('Ошибка: значения d, a, W, v должны быть больше 0')
- else:
- lambd = float(values['-IN1-'])
- mu = float(values['-IN2-'])
- t_m = float(values['-IN3-'])
- t_vis = float(values['-IN4-'])
- t_p = float(values['-IN5-'])
- t_r = float(values['-IN6-'])
- t_t = float(values['-IN7-'])
- d = float(values['-IN8-'])
- a = float(values['-IN9-'])
- w = float(values['-IN10-'])
- v = float(values['-IN11-'])
- valuesSet = True
- window["-Error-"].update('Введеные данные корректны ')
- window.close()
- def layout5():
- global fl
- global val
- layout_l = [
- [sg.T('Панель управления:')],
- [sg.Canvas(key='controls_cv3')],
- [sg.T('График зависимости пропускной способности от скорости ленты:')],
- [sg.Column(
- layout=[
- [sg.Canvas(key='fig_cv3',
- size=(350 * 2, 400)
- )]
- ],
- background_color='#DAE0E6',
- pad=(0, 0)
- )]]
- layout_r = [
- [sg.B('Входные данные', size = (25,1), key = 'input')],
- [sg.Text('d = '), sg.Slider((0.0, 15.0), orientation='h', resolution = 0.1, enable_events=True, key='-SLIDER1-')],
- [sg.Text('a = '), sg.Slider((0.0, 10.0), orientation='h', resolution = 0.1, enable_events=True, key='-SLIDER2-')],
- [sg.T(50*'-')],
- [sg.B('Посторить график', size = (14, 1)), sg.B('Очистить', size=(9, 1))],
- [sg.B('Показать сетку', size = (25, 1))],
- [sg.B('Закрыть', size = (25, 1))],
- ]
- layout = [[sg.Col(layout_l), sg.Col(layout_r)]]
- window = sg.Window('Система M/Gi/1. График пропускной способности', layout)
- while True:
- event, values = window.read()
- if event == sg.WIN_CLOSED or event == 'Закрыть':
- fl = False
- break
- if (event == 'Показать сетку'):
- plt.grid()
- fig = plt.gcf()
- draw_figure_w_toolbar(window['fig_cv3'].TKCanvas, fig, window['controls_cv3'].TKCanvas)
- if (event == 'input'):
- val = 4
- break
- d = values['-SLIDER1-']/10
- a = values['-SLIDER2-']/10
- v = 1
- if event == 'Очистить':
- plt.gcf().clear()
- fig = plt.gcf()
- plt.title('Зависимость функции стоимости от интенсивности входящего потока')
- plt.xlabel('λ')
- plt.ylabel('Функция стоимости')
- draw_figure_w_toolbar(window['fig_cv3'].TKCanvas, fig, window['controls_cv3'].TKCanvas)
- if event == 'Посторить график':
- plt.figure(1)
- fig = plt.gcf()
- DPI = fig.get_dpi()
- fig.set_size_inches(350 * 2 / float(DPI), 400 / float(DPI))
- V = []
- T = []
- t_c = get_t_c()
- print(50*'--')
- print(t_c)
- for i in range(1, 500):
- v = i * 160
- if (w-d == 0):
- p_b = 1e9
- else:
- p_b = (w - d - 2 * a)/(w - d)**2
- if ((w*pi*(a+d)**2) == 0):
- r_b = 1e9
- else:
- r_b = (w-d)/(w*pi*(a+d)**2)
- r_b2 = r_b//1
- if (((w/v)+t_p+r_b2*t_c) == 0):
- T_r = 1e9
- else:
- T_r = r_b/((w/v)+t_p+r_b2*t_c)
- if (i % 100 == 0):
- print(r_b)
- print(r_b2)
- V.append(i)
- T.append(T_r)
- plt.plot(V, T)
- plt.title('График зависимости пропускной способности от скорости ленты')
- plt.xlabel('Скорость ленты V об/мин')
- plt.ylabel('Пропускная способность T_r')
- # ------------------------------- Instead of plt.show()
- draw_figure_w_toolbar(window['fig_cv3'].TKCanvas, fig, window['controls_cv3'].TKCanvas)
- window.close()
- def makeTheme():
- sg.theme('DarkTeal9')
- layout = [
- [sg.Text('Выберете тему, чтобы увидить демо окно')],
- [sg.Listbox(values = sg.theme_list(),
- size =(20, 12),
- key ='-LIST-',
- enable_events = True)],
- [sg.Button('Применить')]]
- window = sg.Window('Список тем', layout)
- while True:
- event, values = window.read()
- if event in (None, 'Применить'):
- window.close()
- return values['-LIST-'][0]
- sg.theme(values['-LIST-'][0])
- sg.popup_get_text('Это "{}" тема'.format(values['-LIST-'][0]))
- ###############
- #инициализиция#
- ###############
- lambd = 0.5
- mu = 4
- C_w = 50
- C_b = 0.1
- C_r = 60
- C_i = 10
- C_s = 0.5
- t_m = 0.13
- t_vis = 0.1
- t_p = 0.12
- t_r = 0.125
- t_t = 0.15
- t_c = get_t_c()
- cost = 1
- s = 1
- fl = True
- val = 0
- pi = math.acos(-1)
- n = 340
- w = 250
- d = 14.4
- a = d/2
- v = 256
- ###############
- sg.theme(makeTheme())
- while (fl == True):
- ############################## 0 ##############################
- if (val == 0):
- layout0()
- ###############################################################
- ############################## 1 ##############################
- if (val == 1):
- layout1()
- ###############################################################
- ############################## 2 ##############################
- if (val == 2):
- layout2()
- ###############################################################
- ############################## 3 ##############################
- if (val == 3):
- layout3()
- ###############################################################
- ############################## 4 ##############################
- if (val == 4):
- layout4()
- ###############################################################
- ############################## 5 ##############################
- if (val == 5):
- layout5()
- ###############################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement