バットをストレートにする私はプログラミングに新しいので、基本的な質問をする前にお詫び申し上げます。私は以前の答えを研究したが、私はまだ固執している。次の問題に取り組んでいます。リスト内にネストされたタプルの要素を変更する方法
Q: ロールプレイングゲーム用のキャラクタークリエイタープログラムを作成してください。強さ、健康、知恵、敏捷性の4つの属性に費やすポイントのプールをプレイヤーに与える必要があります。プレイヤーは任意のアトリビュート上のポイントを使うことができなければならず、アトリビュートからポイントを獲得してプールに戻すこともできるはずです。
私はこの解決策を見つけましたが、本で教えられていない用語を使用していて、リストや辞書が含まれていないので満足できません(章全体がこれでしたので、新しい知識を必要とする章の演習)。 https://github.com/malmhaug/Py_AbsBegin/tree/master/Ch5E2_CreateCharacter
私はいくつかの助けがありますか?ここではiveがこれまでに得たものがあります。事前に
おかげ
#Character creator program; players have 30 points to spend across 4 attributes
#Players can also change their choices
#character attributes
character = [('Strength', 0), ('Health', 0), ('Wisdom', 0), ('Dexterity', 0)]
total = 30
int(total)
print('\nYou have ', total, 'points to spend')
choice = None
while choice != '0':
print(
'''
Please choose an option: \n
\t0: Exit
\t1: Display CV
\t2: Denote Strength
\t3: Denote Health
\t4: Denote Wisdom
\t5: Denote Dexterity
\t6: Change an attribute
'''
)
choice = input('Choice ')
print()
#Exit
if choice == '0':
print('Goodbye')
break
elif choice == '1':
print('Your Character:')
print('Attibute\tLevel')
for i in character:
print(i)
elif choice == '2': #Adds points to the Strength value whilst
#subtracting them from total
character[0] = (attribute, value)
strength = int(input('How strong is your character? '))
if strength <= total:
value = strength
total -= strength
print('You have ', total,'points remaining')
elif strength > total:
print('You dont have enough points')
else:
print('Sorry, invalid entry')
elif choice == '3': #Adds points to the Health value whilst
#subtracting them from total
attribute, value = ('Health', 0)
health = int(input('How robust is your character? '))
if health <= total:
value = health
total -= health
print('You have ', total,'points remaining')
elif health > total:
print('You dont have enough points')
else:
print('Sorry, invalid entry')
elif choice == '4': #Adds points to the Wisdom value whilst
#subtracting them from total
attribute, value = ('Wisdom', 0)
wisdom = int(input('How wise is your character? '))
if wisdom <= total:
value = wisdom
total -= wisdom
print('You have ', total,'points remaining')
elif wisdom > total:
print('You dont have enough points')
else:
print('Sorry, invalid entry')
elif choice == '5': #Adds points to the Dexterity value whilst
#subtracting them from total
attribute, value = ('Dexterity', 0)
dexterity = int(input('How dextrous is your character? '))
if dexterity <= total:
value = dexterity
total -= dexterity
print('You have ', total,'points remaining')
elif dexterity > total:
print('You dont have enough points')
else:
print('Sorry, invalid entry')
elif choice == '6': #Changes the 'value' element in the tuple, chosen by the
#user's input
for skill in character: #shows the user the current character attributes
print(skill)
change = input('Enter an attribute to change: ')#the attriute to change
for skill in character:#iterates over the list's tuples
if change == skill[0]:#tests the change string against the element in the 1st position of each tuple
total += skill[1]
value = int(input('What do you want the new value to be? '))#sets the new value to the second element of the tuple
if value <= total:
total -= new_value
print('You have ', total,'points remaining')
elif new_value > total:
print('You dont have enough points')
else:
print('Sorry, invalid entry')
input('\n\nPress enter to exit')
とすることができます。質問の説明だけでなく、提供されたコードと一緒に? –
なぜディクテーションの代わりにタプルのリストを使用するのですか? –