hnc-eduard/HNC/Ladders/main.py

137 lines
4.0 KiB
Python
Raw Normal View History

2023-06-27 19:19:49 +02:00
from run import run
from files import list_levels
from files import load
def level_menu(levels):
for i in range(1, len(levels) + 1):
print(f'{i}. Level {i}')
print(f'{len(levels) + 1}. Назад')
def level_menu_loop(levels):
while True:
level_menu(levels)
inp = input()
if inp.isnumeric():
op = int(inp)
if 1 <= op <= len(levels) + 1:
if op <= len(levels):
# Выбор уровня
return levels[op - 1]
else:
# Выход из меню
return None
else:
print('Выберите номер из меню!')
else:
print('Вводите только цифры!')
# Добавляем подменю для выбора версии игры
def game_versions_menu():
## 1 ##
max_version = 6
for i in range(1, max_version):
print(f'{i}. Version {i}')
print(f'{max_version}. Назад')
def game_version_loop():
## 2 ##
while True:
game_versions_menu()
inp = input()
if inp.isnumeric():
op = int(inp)
if 1 <= op <= 6:
## 3 ##
if op <= 5:
return op
else:
# Выход из меню
return 0
else:
print('Выберите номер из меню!')
else:
print('Вводите только цифры!')
def main_menu():
print('1. Выбор уровня')
print('2. Выбор кол-ва запусков')
print('3. Выбор версии игры') ## 4 ##
print('4. Запуск')
print('5. Выход')
def main_menu_loop():
levels = list_levels()
level = ''
runs = 1
version = 0 ## 5.1 ##
while True:
print(f'Выбранный уровень: {level}')
print(f'Кол-во запусков: {runs}')
print(f'Выбранная версия правил: {version}')
print()
# Вывод меню на экран
main_menu()
# Ввод от пользователя
inp = input()
# Валидация ввода пользователя
if inp.isnumeric():
op = int(inp)
if 1 <= op <= 5:
# Ввод пользователя валидирован, выполняем действие
if op == 1:
# Выбор уровня
ret = level_menu_loop(levels)
if ret is not None:
level = ret
elif op == 2:
# Ввод кол-во запусков
inp2 = input('Введите кол-во запусков: ')
if inp2.isnumeric():
runs = int(inp2)
else:
print('Вводите только цифры!')
## 5.2 ##
elif op == 3:
# Выбор версии игры
ret = game_version_loop()
if ret > 0:
version = ret
elif op == 4:
# Запуск
if level in levels:
if version > 0:
run(load(level), runs, version) ## 7 ##
else:
print('Для начала выберите версию!') ## 8 ##
else:
print('Для начала выберите уровень!')
else:
# Завершение программы
break
else:
print('Выберите номер из меню!')
else:
print('Вводите только цифры!')
main_menu_loop()