Форум сайта python.su
0
Уважаемые друзья, я в питоне пару недель, прошу вашей помощи. Есть там задачка, условие в коде в коментах. Чисто функционально я ее решил, все значения выводятся и добавляются, вот код всей задачи
# Напишите программу «Генератор персонажей» для ролевой игры. # Пользователю должно быть предоставлено 30 пунктов, которые можно распределить # между четырьмя характеристиками: Сила, Здоровье, Мудрость и Ловкость. # Надо сделать так, чтобы пользователь мог не только брать эти пункты # из общего «Пула», но и возвращать их туда из характеристик, которым он # решит присвоить другие значения. skill = {"здоровье":"10", "мудрость":"12", "сила":"13", "ловкость":"14"} points = int(30) choice = None choice_1 = None razn = int("0") z = int("0") while choice != "0": print("И так у вас: ", points, "очков") print( ''' 0 - Выход 1 - Посмотреть навыки 2 - Распределение/начисление очков по навыкам ''') choice = input("Введите номер пункта: ") if choice == "1": #первый пункт for i in skill: print(i, "\t", skill[i]) if choice == "2": #второй пункт print("здоровье ", "мудрость ", "сила ", "ловкость \n") while choice_1 != "0": print( ''' 0 - Выход 1 - Распределить навыки 2 - Изъять очки из имеющихся навыков ''') choice_1 = input("Введите номер пункта: ") if choice_1 == "1": ##первый пункт i = input ("Введите навык который вы хотите изменить: ") if i in skill: x = int(input("Введите сколько очков нужно присвоить навыку :")) if x <= points: razn = skill[i] z = razn + x skill[i] = z else: print("Извините, у вас недостаточно очков") else: print("Извините, такого навыка не существует") elif choice_1 == "2": ##второй пункт i = input ("Введите навык который вы хотите изменить: ") if i in skill: print("У данного навыка ", skill[i], " очков") x = int(input("Введите сколько очков нужно вычесть :")) if x <= skill[i]: razn = skill[i] z = razn - x skill[i] = z else: print("Извините, у вас недостаточно очков") else: print("Извините, такого навыка не существует") elif choice_1 == "0": ##третий пункт print("До свидания") if choice == "0": print("До свидания")
if i in skill: x = int(input("Введите сколько очков нужно присвоить навыку :")) if x <= points: razn = skill[i] z = razn + x skill[i] = z
Офлайн
35
Здесь достаточно много курьезных моментов, которые можно даже интерпретировать как ошибки.
Вы определяете перечень навыков словарем:
skill = {"здоровье":"10", "мудрость":"12", "сила":"13", "ловкость":"14"}
... if i in skill: x = int(input("Введите сколько очков нужно присвоить навыку :")) if x <= points: razn = skill[i] z = razn + x skill[i] = z
Офлайн