Witam. Mam za zadanie napisać program, w którym użytkownik dodaje i odejmuje z puli 30 punktów punkty doświadczenia dla czterech atrybutów.
# kreator wojownika
atrybuty = []
atrybuty_lista = ["siła", "zdrowie", "mądrość", "zręczność"]
points = 30
choice = None
while choice != "0":
print(
"""
0 - zakończ program
1 - dodaj punkty do umiejętności
2 - odejmij punkty od umiejętności
3 - wyświetl drzewko umiejętności
"""
)
choice = input("Wybierz opcję: ")
print()
if choice == "0":
print("Żegnaj!")
elif choice == "1":
if points == 0:
print("Wykorzystałeś wszystkie punkty!")
else:
print("Dostępne atrybuty: ", atrybuty_lista)
name_skill = input("Do jakiego atrybutu chcesz dodać punkty?")
value = int(input("Ile punktów chcesz przyznać?"))
x = name_skill, value
if x not in atrybuty:
atrybuty.append(x)
else:
print("Ta umiejętność ma już dodane punkty")
points -= value
elif choice == "2":
for atrybut in atrybuty:
print(atrybut, end ="")
name_skill2 = input("\nOd jakiego atrybutu chcesz odjąć punkty?")
value = int(input("Ile punktów chcesz odjąć?"))
y = name_skill2, value
if y in atrybuty:
atrybuty.remove(y)
else:
print(y, "nie ma takiej umiejętności w 'atrybutach'")
points += value
elif choice == "3":
print("\nTwoje drzewko umiejętności:")
for atrybut in atrybuty:
print(atrybut)
else:
print("Przykro mi,", choice, " nie jest właściwym wyborem!")
input("\n\nAby zakończyć program naciśnij enter!")
Jak widzicie pierwsz funkcja elif tworzy krotkę z dwoma elementami "str" i liczbą 10 w liście atrybuty. Czy jest możliwość usunięcia liczby z tej krotki aby później w razie potrzeby dodać do tej krotki kolejną liczbę? Krotki są niemutowalne więc z tego co się nauczyłem nie można ich zmieniać. Tak więc druga funkcja elif usuwa istniejącą już pozycję poprzez jej podanie. Czy da się utworzyć program z listami gdzie gracz będzie miał możliwość dodawania i usuwania wybranej liczby punktów doświadczenia? Jak np. doda 10 punktów do życia czy będzie mógł odjąć 7? Próbowałem też robić tą operację wykorzystując słowniki. Ale w słownikach mogę usuwać całosc klucz i definicję albo edytować definicję.