Cześć, jestem tu nowy i też zaczynam przygode z Pythonem. Zrobiłem zadanie odnośnie skilli które brzmi mniej wiecej tak:
Spędziłem na tym ponad 3 godziny. Jak by ktoś był miły i chciał zerknąć na kod czy jest w ogóle warty czegoś. Bardzo chętnie przeczytam myśl - nawet krytyczną odnośnie tego. Słowniki użyłem tylko po to żeby były, bo chyba autorowi zadania na tym zależało. Ale według mnie te słowniki są strasznie mało przydatne. Najlepsze są listy. Ale może jeszcze nie znam wszystkich możliwości list. Oto kod:
Kopiuj
statystyki = {"sila":0, "zdrowie":0, "madrosc":0, "zrecznosc": 0} # słownik
s = 0 # sila
z = 0 # zdrowie
m = 0 # mądrosc
zr = 0 # zręcznosc
punkty = 30
dalej = 1 # warunkuje czy główna petla sie odpali
klasa = ""
while dalej == 1: # czyli "dalej" rozne od 1 zakonczy program
# główne menu:
print ("\n"
"--------------------------------"
"---------------------------------"
"\nMasz: ", punkty, " punktow do rozdania")
print ("Co chcesz zrobic?")
print ("1 - dodac punkty")
print ("2 - zabrać punkty")
print ("3 - sprawdzic jak wygladaja statystyki")
print ("5 - wyjsc")
decyzja_menu = int(input("Twoja decyzja: "))
# Gdzie dodac punkty?
while decyzja_menu == 1:
print ("Masz jeszcze: ", punkty, " punktów")
print ("Gdzie chcesz rozdac punkty?"
"\n1 - Sila, 2 - zdrowie, 3 - madrosc, 4 - zrecznosc"
" /// 9 - wystarczy")
decyzja_dodawanie = int(input("--------------------------------"
"---------------------------------"
"\nWybieram "))
# Dodawanie punktow
if decyzja_dodawanie == 1:
if punkty > 0:
s += 1
punkty -= 1
print ("Masz juz ", s, "sily")
if decyzja_dodawanie == 2:
if punkty > 0:
z += 1
punkty -= 1
print ("Masz juz ", z, "zdrowia")
if decyzja_dodawanie == 3:
if punkty > 0:
m += 1
punkty -= 1
print ("Masz juz ", m, "madrosci")
if decyzja_dodawanie == 4:
if punkty > 0:
zr += 1
punkty -= 1
print ("Masz juz ", zr, "zrecznosci")
if punkty < 1:
print ("\n\t\tRozdales juz wszystkie punkty!!!\n")
# powrót do głównego menu i zapisywanie statystyk do slownika
if decyzja_dodawanie == 9:
decyzja_menu = 4
print ("Ok, konczymy dodawanie")
statystyki["sila"] = s
statystyki["zdrowie"] = z
statystyki["madrosc"] = m
statystyki["zrecznosc"] = zr
print ("Masz teraz :", statystyki)
# Wybór skad odjac punkty
while decyzja_menu == 2:
print ("Masz jeszcze: ", punkty, " punktów")
print ("\nSkad chcesz zabrac punkty?"
"\n1 - Sila, 2 - zdrowie, 3 - madrosc, 4 - zrecznosc"
" 9 - wystarczy")
decyzja_odejmowanie = int(input("--------------------------------"
"---------------------------------"
"\nWybieram "))
# Odejmowanie punktow
if decyzja_odejmowanie == 1:
if punkty < 30 and s > 0:
s -= 1
punkty += 1
print ("Masz juz tylko", s, "sily")
if s == 0:
print ("\n\t\tNie mozesz juz wiecej zabrac!\n")
if decyzja_odejmowanie == 2:
if punkty < 30 and z > 0:
z -= 1
punkty += 1
print ("Masz juz tylko", z, "zdrowia")
if z == 0:
print ("\n\t\tNie mozesz juz wiecej zabrac!\n")
if decyzja_odejmowanie == 3:
if punkty < 30 and m > 0 :
m -= 1
punkty += 1
print ("Masz juz tylko ", m, "madrosci")
if m == 0:
print ("\n\t\tNie mozesz juz wiecej zabrac!\n")
if decyzja_odejmowanie == 4:
if punkty < 30 and zr > 0:
zr -= 1
punkty += 1
print ("Masz juz tylko", zr, "zrecznosci")
if zr == 0:
print ("\n\t\tNie mozesz juz wiecej zabrac!\n")
if decyzja_odejmowanie == 9:
decyzja_menu = 4
print ("Ok, konczymy odejmowanie")
statystyki["sila"] = s
statystyki["zdrowie"] = z
statystyki["madrosc"] = m
statystyki["zrecznosc"] = zr
print ("Masz teraz :", statystyki)
if punkty == 30:
print ("\n\t\tJuz zabrales wszystkie punkty!!!\n")
# pokazanie statystyk w petlach for
if decyzja_menu == 3:
print (statystyki)
print ("\n --------------------------------"
"---------------------------------"
"\nTwoje statystyki: ")
print ("\nSila :", s)
for i in range (s):
print ("[><]", end="")
print ("\nZdrowie :", z)
for i in range (z):
print ("[><]", end="")
print ("\nMadrosc :", m)
for i in range (m):
print ("[><]", end="")
print ("\nZręcznosc :", zr)
for i in range (zr):
print ("[><]", end="")
if s > 8 and z > 8 and m > 8:
klasa = "mag_bitewny"
elif m > 9 and zr > 9:
klasa = "medyk"
elif s > 8 and z > 8 and zr > 8:
klasa = "żołnierz_elitarny"
elif s > 12 and z > 10:
klasa = "olbrzym"
elif s > 10 and zr > 10:
klasa = "krasnolud_technik"
elif z > 10 and m > 10:
klasa = "czarnoksieznik"
elif s > 10:
klasa = "osiłek"
elif z > 10 and m >8:
klasa = "krasnolud_mag"
elif z > 10:
klasa = "krasnolud_wojownik"
elif z > 10 and m >8:
klasa = "krasnolud_mag"
elif m > 10:
klasa = "medrzec"
elif zr > 12:
klasa = "łucznik"
elif s > 12 and z > 10:
klasa = "olbrzym"
elif s > 10 and zr > 10:
klasa = "krasnolud_technik"
elif z > 10 and m > 10:
klasa = "czarnoksieznik"
else:
klasa = "nikt_szczególny"
print ("\n\t\tTwoja klasa to: ",klasa)
# wyjscie:
if decyzja_menu == 5:
print ("Ok koniec zabawy, dzieki za przetestowanie!!! :)")
dalej = 2 # "dalej" rózne od 1 to wyjscie
list comprehension
- IMO jest bardziej czytelna niż Twoje rozwiązanie.