Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Генератор персонажа v2
- # Доступно 30 очков, которые можно распределить среди Силы, Здоровья, Ловкости и Мудрости
- # Последнее редактирование 1:10 (UTC+6) 19.11.2015
- # Сам знаешь что нужно исправить в функции edit_skills
- # Да и вообще косяков не мало, лучше заного всё написать
- # Импортируем полку
- import shelve
- print("\t\tДобро пожаловать в генератор персонажа v2 !")
- # КОНСТАНТА пунктов меню
- NUM_MENU = ("0", "1", "2", "3", "8", "9")
- NUM_MENU_E = ("0", "1", "2", "3", "4")
- # Сохранение параметров
- def save():
- global strenght, hp, agility, intellect, l_skills
- s = shelve.open("save")
- s["Сила"] = strenght
- s["Здоровье"] = hp
- s["Ловкость"] = agility
- s["Мудрость"] = intellect
- s["Очки"] = l_skills
- s.sync()
- s.close()
- input("Параметры сохранены!")
- # Загрузка параметров
- def load():
- global strenght, hp, agility, intellect, l_skills
- l = shelve.open("save")
- strenght = l["Сила"]
- hp = l["Здоровье"]
- agility = l["Ловкость"]
- intellect = l["Мудрость"]
- l_skills = l["Очки"]
- l.close()
- input("Параметры загружены!")
- # Отображение параметров
- def display_skills(skills):
- print("\n Сила: ", strenght)
- print(" Здоровье: ", hp)
- print(" Ловкость: ", agility)
- print(" Мудрость: ", intellect)
- print("\nДоступно очков умений: ", l_skills)
- # Отображение меню
- def display_menu():
- print(
- """
- 0 - Закончить
- 1 - Распределить очки умений
- 2 - Редактировать очки умений
- 3 - Сбросить очки умений
- 8 - Загрузить параметры
- 9 - Сохранить параметры
- """
- )
- global choice
- choice = input("Ваш выбор: ")
- while choice not in NUM_MENU:
- choice = input("Ваш выбор: ")
- # Меню редактирования
- def display_menu_edit():
- print("\nКакой навык желаете редактировать?")
- print("\n 1 - Сила: ", strenght)
- print(" 2 - Здоровье: ", hp)
- print(" 3 - Ловкость: ", agility)
- print(" 4 - Мудрость: ", intellect)
- print("\n 0 - Назад\n")
- global choice
- choice = input("Ваш выбор: ")
- edit_skills(choice)
- while choice not in NUM_MENU_E:
- choice = input("Ваш выбор: ")
- edit_skills(choice)
- if choice == "0":
- display_skills(skills)
- display_menu()
- # Функционирование меню
- def menu(choice):
- if choice == "1":
- use_skills()
- elif choice == "2":
- display_menu_edit()
- elif choice == "3":
- reset()
- elif choice == "8":
- load()
- elif choice == "9":
- save()
- # Функция распределения очков умений
- def use_skills():
- global strenght, hp, agility, intellect, l_skills
- print("\nСила: ", end="")
- strenght += point_up(strenght)
- print("Здоровье: ", end="")
- hp += point_up(hp)
- print("Ловкость: ", end="")
- agility += point_up(agility)
- print("Интеллект: ", end="")
- intellect += point_up(intellect)
- # Редактировать очки умения
- def edit_skills(choice):
- global strenght, hp, agility, intellect, l_skills
- if choice == "1":
- act = input("Прибавить или отнять? (+\-)\n")
- if "-" in act:
- print(strenght, "- ", end="")
- strenght = point_down(strenght)
- display_menu_edit()
- elif "+" in act:
- print(strenght, "+ ", end="")
- strenght = point_up(strenght)
- display_menu_edit()
- else:
- print("\nНекорректный ввод!")
- display_menu_edit()
- elif choice == "2":
- act = input("+\- ?\n")
- if "-" in act:
- print(hp, "- ", end="")
- hp = point_down(hp)
- display_menu_edit()
- elif "+" in act:
- print(hp, "+ ", end="")
- hp = point_up(hp)
- display_menu_edit()
- else:
- print("\nНекорректный ввод!")
- display_menu_edit()
- elif choice == "3":
- act = input("+\- ?\n")
- if "-" in act:
- print(agility, "- ", end="")
- agility = point_down(agility)
- display_menu_edit()
- elif "+" in act:
- print(agility, "+ ", end="")
- agility = point_up(agility)
- display_menu_edit()
- else:
- print("\nНекорректный ввод!")
- display_menu_edit()
- elif choice == "4":
- act = input("+\- ?\n")
- if "-" in act:
- print(intellect, "- ", end="")
- intellect = point_down(intellect)
- display_menu_edit()
- elif "+" in act:
- print(intellect, "+ ", end="")
- intellect = point_up(intellect)
- display_menu_edit()
- else:
- print("\nНекорректный ввод!")
- display_menu_edit()
- # Повысить навык
- def point_up(skill):
- global l_skills
- skill = int(input())
- if skill < 0:
- print("Некорректный ввод!")
- main()
- elif skill < l_skills + 1:
- l_skills -= skill
- print("\nДоступно очков", l_skills)
- return skill
- else:
- print("У вас нет стольки очков умений!")
- main()
- # Понизить навык
- def point_down(skill):
- global l_skills
- skill_down = int(input())
- if skill < 0:
- print("Некорректный ввод!")
- main()
- elif skill_down < skill + 1:
- l_skills += skill_down
- skill -= skill_down
- print("\nДоступно очков", l_skills)
- return skill
- else:
- print("Вы не можете этого сделать!")
- main()
- # Сброс навыков
- def reset():
- global strenght, hp, agility, intellect, l_skills
- answer = input("\nВы уверены? (y/n)").lower()
- if answer == "y" or answer == "yes":
- strenght = 0
- hp = 0
- agility = 0
- intellect = 0
- l_skills = 30
- elif answer == "n" or answer == "no":
- main()
- else:
- reset()
- # Основная часть программы
- def main():
- while choice != "0":
- display_skills(skills)
- display_menu()
- menu(choice)
- choice = None
- skills = {"Сила": 0,
- "Здоровье": 0,
- "Ловкость": 0,
- "Мудрость": 0}
- l_skills = 30
- strenght = skills["Сила"]
- hp = skills["Здоровье"]
- agility = skills["Ловкость"]
- intellect = skills["Мудрость"]
- main()
- input("\n\nНапишите Enter чтобы выйти")
- # КОНЕЦ
Advertisement
Add Comment
Please, Sign In to add comment