Форум сайта python.su
0
Здравствуйте, только начал изучать Python по книге Майкла Доусона. В ней есть следующее задание:
Написать программу “Генератор персонажей” в которой пользователю предоставляется 30 пунктов, которые он должен распределить по характеристикам героя. Значения характеристик можно увеличивать и уменьшать. Вот мой код:
hero={"Сила":0,"Выносливость":0,"Мудрость":0} pull=30 choice=None points=None while choice!="0": print( """ Создадим вашего героя 0-прекращаем создание героя 1-увеличим/уменьшим силу 2-увеличим/уменьшим выносливость 3-увеличим/уменьшим мудрость 4-показать все характеристики героя """ ) choice=input("Ваш выбор: ") print() if choice=="0": print("Пока....") elif choice=="1": points=int(input("На сколько увеличим/уменьшим силу: ")) if points>=0: pull=pull-points if pull>=0: hero["Сила"]=hero["Сила"]+points print("Теперь ваша сила равна: ",hero["Сила"],"Свободных очков осталось: ",pull) elif points>pull: print("У Вас нет такого количества свободных очков попробуйте еще раз") if points<0: if hero["Сила"]>0: zero=hero["Сила"] zero=zero+points if zero>0: hero["Сила"]=zero pull=pull-points elif zero<0: print("Сила не может быть меньше нуля") elif zero==0: hero["Сила"]=zero pull=pull-points if hero["Сила"]<=0: print("Сила героя не может быть меньше нуля") elif hero["Сила"]>=0: print("Теперь ваша сила равна: ",hero["Сила"],"Свободных очков осталось: ",pull) if choice=="2": points=int(input("На сколько увеличим/уменьшим выносливость: ")) if points>=0: pull=pull-points if pull>=0: hero["Выносливость"]=hero["Выносливость"]+points print("Теперь ваша выносливость равна: ",hero["Выносливость"],"Свободных очков осталось: ",pull) elif points>pull: print("У Вас нет такого количества свободных очков попробуйте еще раз") if points<0: if hero["Выносливость"]>0: zero=hero["Выносливость"] zero=zero+points if zero>0: hero["Выносливость"]=zero pull=pull-points elif zero<0: print("Выносливость не может быть меньше нуля") elif zero==0: hero["Выносливость"]=zero pull=pull-points if hero["Выносливость"]<=0: print("Выносливость героя не может быть меньше нуля") elif hero["Выносливость"]>=0: print("Теперь ваша выносливость равна: ",hero["Сила"],"Свободных очков осталось: ",pull) if choice=="3": points=int(input("На сколько увеличим/уменьшим мудрость: ")) if points>=0: pull=pull-points if pull>=0: hero["Мудрость"]=hero["Мудрость"]+points print("Теперь ваша мудрость равна: ",hero["Мудрость"],"Свободных очков осталось: ",pull) elif points>pull: print("У Вас нет такого количества свободных очков попробуйте еще раз") if points<0: if hero["Мудрость"]>0: zero=hero["Мудрость"] zero=zero+points if zero>0: hero["Мудрость"]=zero pull=pull-points elif zero<0: print("Мудрость не может быть меньше нуля") elif zero==0: hero["Мудрость"]=zero pull=pull-points if hero["Мудрость"]<=0: print("Мудрость героя не может быть меньше нуля") elif hero["Мудрость"]>=0: print("Теперь ваша мудрость равна: ",hero["Мудрость"],"Свободных очков осталось: ",pull) if choice=="4": print("\nХарактеристики вашего героя выглядят так:") print("\n","Сила",hero["Сила"],"\n","Выносливость",hero["Выносливость"],"\n","Мудрость",hero["Мудрость"],"\n","Свободных очков: ",pull)
Офлайн
253
Программирование предполагает умение использовать существующие наработки
я бы сделал так:
import yaml import subprocess as sp import os def get_props(props={"сила":0,"мудрость":0,...}): nm = "tmp.yaml" with open(nm,"w",encoding="utf-8") as f: yaml.dump(props,f,allow_unicode=True) sp.run(f"subl {nm}") with open(nm,"r",encoding="utf-8") as f: new_props = yaml.load(f) os.remove(nm) # тут если надо можно проверить и поправить то что введено return new_props
Отредактировано doza_and (Июнь 1, 2019 09:29:42)
Офлайн
0
doza_andЗдравствуйте, спасибо за ответ, но хотел бы обратить Ваше внимание на то что я еще только начал изучать Python. К сожалению многое из того, что Вы написали мне пока не понятно.
Программирование предполагает умение использовать существующие наработкия бы сделал так:
Офлайн
294
Yanusмлин, у меня очень четкое дежавь, гдето на этом форуме ктото ровно с тем же вопросом обращался.но вот не могу найти, толи с поиском на форуме чтото толи у меня с головой…
Написать программу “Генератор персонажей” в которой пользователю предоставляется 30 пунктов, которые он должен распределить по характеристикам героя
[code python][/code]
Отредактировано PEHDOM (Июнь 4, 2019 22:02:28)
Офлайн
0
PEHDOMОгромное Вам спасибо. Посмотрел.
Офлайн