示例#1
0
 def choice(self):
     try:
         number = int(input(Fore.LIGHTGREEN_EX + '\n введите чисо: ' + Style.RESET_ALL))
         if number in self.menu_numbers:
             if number == 1:
                 return 1
             elif number == 2:
                 return 2
             elif number == 3:
                 return 3
             elif number == 4:
                 return 4
             elif number == 7:
                 cls()
                 start = StartMenu().menu()
                 start.draw()
                 print(Fore.LIGHTRED_EX + '\n вы вернулись в главное меню' + Style.RESET_ALL)
                 ChoiceMenu(self.menu_numbers, self.repeat).choice()
             elif number == 8:
                 cls()
                 game_exit()
         else:
             cls()
             HeadMenu()
             self.repeat.draw()
             print(Fore.LIGHTRED_EX + '\n вы выбрали несуществующий пунк меню')
             ChoiceMenu(self.menu_numbers, self.repeat).choice()
     except ValueError:
         cls()
         HeadMenu()
         self.repeat.draw()
         print(Fore.LIGHTRED_EX + '\n вы ввели не подходящее значение')
         ChoiceMenu(self.menu_numbers, self.repeat).choice()
示例#2
0
def new_enemy():
    try:
        print(Fore.LIGHTYELLOW_EX + 'Вам необходимо ввести информация по вашему противнику,\n'
              'мы ни как не будем  вас ограничивать, можете  проявить\n'
              'фантазию,  но помните от того  какие данные вы введете\n'
              'будет зависить то с кем вам предстаит сражаться.\n'
              'Помните, что показатель здровья, силы, брони, возраста\n'
              'выносливости и манны являются числовыми значениями.\n'
              'В имени не должно быть цифр.\n', Fore.GREEN)
        name = str(input('имя персонажа: ')).capitalize()
        if name.isalpha() is False:
            raise ValueError
        with open('save.txt', 'r') as save:
            characters = json.loads(save.read())
        with open('enemy.txt', 'r') as save:
            enemy_characters = json.loads(save.read())
        if name in characters or name in enemy_characters:
            raise TypeError
        else:
            enemy = []
            enemy += [str(input('пол: '))]
            enemy += [str(input('расса: '))]
            enemy += [str(input('класс: '))]
            enemy += [str(int(input('возраст: ')))]
            enemy += [str(input('оружие: '))]
            enemy += [str(int(input('здровье: ')))]
            enemy += [str(int(input('броня: ')))]
            enemy += [str(int(input('сила: ')))]
            enemy += [str(int(input('выносливасть: ')))]
            enemy += [str(int(input('манна: ')))]
            enemy += [str(input('ульта: '))]
            print()
            enemy_characters[name] = enemy
            with open('enemy.txt', 'w') as save_game:
                save_game.write(json.dumps(enemy_characters))
            return True
    except ValueError:
        cls()
        print(Fore.LIGHTRED_EX + 'Вы   допустили  ошибку  при  вводе  данных,  прочтите \n'
                                 'внимательно условие!\n')
        return False
    except TypeError:
        cls()
        print(Fore.LIGHTRED_EX + 'Увы,  но персонаж с таким именем уже есть,  попробуйте \n'
                                 'снова!!!\n')
        return False
示例#3
0
 def check_choice(self):
     """метод проверки правельного выбора пуктов меню"""
     while True:
         try:
             print(Fore.GREEN + '\n выш выбор: ', end='')
             player_choice = int(input())
             if self.x <= player_choice <= self.y:
                 cls()
                 return player_choice
             else:
                 raise ValueError
         except ValueError:
             cls()
             self.draw_repeat.draw()
             print(
                 Style.BRIGHT + Fore.LIGHTCYAN_EX +
                 f'\n введите цифру от {self.x} до {self.y}',
                 Style.RESET_ALL)
示例#4
0
 def check_name(self):
     while True:
         try:
             print(Fore.GREEN + Back.BLACK + '\n ваше имя: ', end='')
             character_name = str(input())
             if 1 < len(character_name) < 21 and character_name.isalpha():
                 cls()
                 return character_name.capitalize()
             else:
                 raise ValueError
         except ValueError:
             cls()
             self.draw_repeat.draw()
             print(
                 Style.BRIGHT + Fore.LIGHTCYAN_EX + '\n     имя персонажа может состоять только из букв \n'
                                                    '           длина имени от 2 до 20 символов \n'
                                                    '             цифр в имене быть не должно',
                 Style.RESET_ALL
             )
示例#5
0
def run_game():
    run = True
    while run:
        draw = Draw(
            canvas(random.choice([pictures(0), pictures(1)]), pictures(2)))
        draw.window_size()
        draw.draw()
        menu_choice = Menu(1, 3,
                           draw).check_choice()  # первый выбор, основное меню
        if menu_choice == 1:
            name_choice, hero, char_name = None, True, None
            while hero:
                draw = Draw(canvas(pictures(4), pictures(5)),
                            5)  # картинка ввода имени персонажа
                draw.draw()
                char_name = Game(draw).check_name()  # ввод имени
                picture_name = Game(picture=pictures(7),
                                    text={
                                        'canvas4c': char_name
                                    }).print_text()
                draw = Draw(canvas(picture_name, pictures(6)),
                            9)  # картинка отображающая ваше имя
                draw.draw()
                name_choice = Menu(
                    1, 3,
                    draw).check_choice()  # выбор подтверждения вашего имени
                if name_choice == 1:  # выбор подтверждения вашего имени, вы согласны с именем
                    picture_name_approved = Game(picture=pictures(8),
                                                 text={
                                                     'canvas4c': char_name
                                                 }).print_text()
                    draw = Draw(canvas(picture_name_approved),
                                5)  # картинка, что такое имя уже есть
                    Game().enemy_save()
                    name = Game(draw_repeat=draw,
                                name=char_name).save_new_game(
                                )  # проверяет наличие имени в save

                    if name is False:  # такое имя уже есть в save
                        draw = Draw(
                            canvas(pictures(4), pictures(5), pictures(10)),
                            5)  # рисует выбор нового имени
                        draw.draw()
                        approved_name_choice = Menu(1, 2, draw).check_choice(
                        )  # либо новое имя либо вернуться в меню

                        if approved_name_choice == 1:  # если новое имя то цикл занова
                            pass
                        elif approved_name_choice == 2:  # возврат в главное меню
                            hero = False
                            name_choice = 3

                    elif name is True:  # если имени в save нет, будет создан персонаж
                        hero = False

                elif name_choice == 2:  # выбор подтверждения вашего имени, вы не согласны с именем, цикл hero занова
                    pass
                elif name_choice == 3:  # выбор подтверждения вашего имени, возврат в главное меню
                    hero = False
            if name_choice != 3:  # продолжаем создавать персонажа, выбираем пол
                char_choice = []

                Draw(canvas(pictures(4), pictures(5), pictures(13)), 5).draw()
                draw = Draw(canvas(pictures(4), pictures(5), pictures(14)),
                            5)  # картинка выбора пола
                draw.draw()
                sex_choice = Menu(
                    1, 2, draw).check_choice()  # выбор пола вашего персонажа
                char_choice += [sex_choice]

                Draw(canvas(pictures(4), pictures(5), pictures(15)), 5).draw()
                draw = Draw(canvas(pictures(9)), 10)  # картинка выбора рассы
                draw.draw()
                race_choice = Menu(
                    1, 4, draw).check_choice()  # выбор рассы вашего персонажа
                char_choice += [race_choice]

                if race_choice == 2:
                    Draw(canvas(pictures(4), pictures(5), pictures(16)),
                         5).draw()
                    draw = Draw(canvas(pictures(4), pictures(5), pictures(17)),
                                5)  # картинка выбора класса эльфа
                    draw.draw()
                    class_choice = Menu(
                        1, 3,
                        draw).check_choice()  # выбор класса вашего персонажа
                    char_choice += [class_choice]

                elif race_choice == 3:
                    Draw(canvas(pictures(4), pictures(5), pictures(16)),
                         5).draw()
                    draw = Draw(canvas(pictures(4), pictures(5), pictures(18)),
                                5)  # картинка выбора класса орка
                    draw.draw()  # рисуем картинку выбора класса
                    class_choice = Menu(
                        1, 3,
                        draw).check_choice()  # выбор класса вашего персонажа
                    char_choice += [class_choice]

                elif race_choice == 4:
                    Draw(canvas(pictures(4), pictures(5), pictures(16)),
                         5).draw()
                    draw = Draw(canvas(pictures(4), pictures(5), pictures(19)),
                                5)  # картинка выбора класса гнома
                    draw.draw()
                    class_choice = Menu(
                        1, 2,
                        draw).check_choice()  # выбор класса вашего персонажа
                    char_choice += [class_choice]

                else:
                    Draw(canvas(pictures(4), pictures(5), pictures(16)),
                         5).draw()
                    draw = Draw(canvas(pictures(4), pictures(5), pictures(20)),
                                5)  # картинка выбора класса человека
                    draw.draw()
                    class_choice = Menu(
                        1, 4,
                        draw).check_choice()  # выбор класса вашего персонажа
                    char_choice += [class_choice]

                draw = Draw(canvas(pictures(4), pictures(5), pictures(21)),
                            5)  # картинка возраста персонажа
                draw.draw()
                age_choice = Menu(
                    20, 100,
                    draw).check_choice()  # выбор возраста вашего персонажа
                char_choice += [age_choice]

                draw = Draw(canvas(pictures(4), pictures(5), pictures(22)), 7)
                draw.draw()
                Draw(canvas(pictures(4), pictures(5), pictures(25)), 5).draw()
                params_choice = Menu(
                    1, 3, draw).check_choice()  # выбор параметров персонажа
                Game(name=char_name,
                     params=char_params(char_choice)).save_new_game()
                if params_choice == 1:
                    pass
                elif params_choice == 2:
                    params = params_char(pictures(12), char_params(
                        char_choice))  # заменяем словарь параметров
                    picture_params1 = Game(picture=pictures(11),
                                           text={
                                               'canvas4c': char_name
                                           }).print_text()
                    picture_params2 = Game(picture=pictures(12),
                                           text=params).print_text()
                    draw = Draw(canvas(picture_params1, picture_params2), 17)
                    draw.draw()
                    draw = Draw(
                        canvas(pictures(22), pictures(5), pictures(23)), 7)
                    draw.draw()
                    statistic_choice = Menu(1, 2, draw).check_choice()
                    if statistic_choice == 1:
                        enemy = True
                        while enemy:
                            enemy_choice = new_enemy()
                            if enemy_choice is True:
                                cls()
                                draw = Draw(
                                    canvas(pictures(22), pictures(5),
                                           pictures(24)), 7)
                                draw.draw()
                                new_enemy_choice = Menu(1, 2,
                                                        draw).check_choice()
                                if new_enemy_choice == 1:
                                    pass
                                elif new_enemy_choice == 2:
                                    enemy = False
                            elif enemy_choice is False:
                                pass
                if params_choice != 3:
                    print('продолжение')
                    time.sleep(2)

        elif menu_choice == 2:
            print('продолжение пока не готово')
            time.sleep(2.5)
        elif menu_choice == 3:
            run = game_exit()