hnc-daniil/Game/main.py

135 lines
3.7 KiB
Python
Raw Normal View History

2023-06-27 20:04:17 +02:00
from Player import Player
def load(file):
# 1. Загрузить весь файл в строку
f = open(file, 'r')
s = f.read()
# 2. Заменить все пробелы и переводы строки на "ничего"
s = s.replace(' ', '')
s = s.replace('\n', '')
# 3. Из полученной строки создать массив, используя разделитель ","
a = s.split(',')
# a - массив строк, в которых хранятся числа
b = []
for x in a:
b.append(int(x))
# b - массив чисел из а
f.close()
return b
def level_menu():
for i in range(1, len(levels) + 1):
print(f'{i}. Level {i}')
print(f'{len(levels) + 1}. Назад')
def level_menu_loop():
while True:
level_menu()
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 main_menu():
print('1. Выбор уровня')
print('2. Выбор кол-ва запусков')
print('3. Запуск')
print('4. Выход')
def main_menu_loop():
level = ''
runs = 1
while True:
print(f'Выбранный уровень: {level}')
print(f'Кол-во запусков: {runs}')
print()
# Вывод меню на экран
main_menu()
# Ввод от пользователя
inp = input()
# Валидация ввода пользователя
if inp.isnumeric():
op = int(inp)
if 1 <= op <= 4:
# Ввод пользователя валидирован, выполняем действие
if op == 1:
# Выбор уровня
ret = level_menu_loop()
if ret is not None:
level = ret
elif op == 2:
# Ввод кол-во запусков
inp2 = input('Введите кол-во запусков: ')
if inp2.isnumeric():
runs = int(inp2)
else:
print('Вводите только цифры!')
elif op == 3:
# Запуск
if level in levels:
run(load(level), runs)
else:
print('Для начала выберите уровень!')
else:
# Завершение программы
break
else:
print('Выберите номер из меню!')
else:
print('Вводите только цифры!')
def run(level, runs):
# Ручной или авто режим
auto = False
# Если больше одного запуска
if runs > 1:
# Автоматически включаем авто режим
auto = True
results = []
for i in range(runs):
results.append(game_loop(auto, level))
print(f'Average: {sum(results)/runs}')
print()
levels = ['level1.txt', 'level2.txt', 'level3.txt', 'level4.txt', 'level5.txt', 'level6.txt']
#random.seed()
main_menu_loop()