hnc-daniil/Game/main.py

135 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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