Jestem początkującym i niewiele ogarniam, ale utknąłem i nie wiem jak rozpisać ten program dalej, żeby zaczął działać.
Gra polega na tym, że się wybiera między kilkoma opcjami i przechodzi dalej. Mógłbym ją zrobić stosując if else, ale bym miał wtedy bardzo dużo kodu, bo musiałbym przepisywać kolejny etap historii w każdym poprzednim wyborze i zrobiłem if else i dałem tam wywołanie funkcji.
Teraz opis mojego problemu. Czy w metodzie mogę wywołać kolejną metodę. Bo wiecie wybieram np. drogę A, która wywołuje funkcję np. królestwoElfów. Potem w tej funkcji chce przejść do kolejnego etapu, gdy już wybieram coś tam np. w funkcji krainaElfów() i na koniec jak już wybrałem jakąś tam decyzję chce sobie przejść do kolejnego etapu czyli wywołuje funkcję władcaElfów() , ale nie da się, bo gra zamiast przejść do tamtej funkcji włącza się od nowa. 1.Czy w ogóle można wywoływać funkcję w funkcji w pythonie?
-
Jakbyście ten program rozpisali.
-
Czy widzicie jakieś inne podstawowe błędy, które robię w programowaniu?
-
Co zrobić, żeby wartość jakiejś zmiennej była dostępna wszędzie, np. w definicji krainaElfów mam zmienną twojeZłoto2 i chciałbym używać tej zmiennej potem (w kolejnej funkcji), ale się nie da, bo zasięg nie pozwala.
import random
import time
def wyświetlIntro():
print('''Witaj! Ostatniej nocy spędziłeś w karczmie długie godziny. Chyba
ktoś dosypał ci coś do kufla, bo nic nie pamiętasz. Budzisz się pośrodku
wielkiego, ciemnego lasu. Wygląda na bardzo stary.''')
time.sleep(4)
def pierwszeKroki():
print('''Powoli wstajesz. Jak na środek lata nie jest zbyt ciepło. Rozglądasz
się dookoła. Widzisz stare drzewa, gdzieniegdzie paprocie. Słyszysz śpiew ptaków
i zapach kwiatów. Kilkadziesiąt metrów dalej widzisz niewielkie wzniesienie, a
na nim kilka drzew. Postanawiasz tam iść i wspiąć na jedno z nich, aby móc lepiej
rozejrzeć się po okolicy. Zajmuje ci to trochę czasu...''')
time.sleep(6)
def widokOkolicy():
print('''Wspinasz się na najwyższe drzewo i widzisz okolicę. Widzisz niedaleko drogę,
możesz nią dotrzeć na północ lub południe lasu. Od ciebie zależy, którą drogę wybierzesz.
Na północy widzisz, że las robi się jeszcze gęstszy, a drzewa są większe. Na południu
las się rozrzedza, a na końcu widoć góry. Którą drogę wybierzesz? (1 - północ, 2 -
południe)''')
def krasnoludKról():
print('''W końcu docierasz do podnóża góry. U wejścia do jaskini czeka na ciebie krasnolud. Witam cię podróżniku!
W tej jaskini czekają na ciebie groźne bestie. Widzę, że twój miecz jest już stary i zużyty. Może chciałbyś kupić
moją buławę? Kosztuje jedyne 10 złota. Co ty na to? 1 - tak 2 - nie''')
if buława == 1:
print(twojeZłoto2)
elif buława == 2:
print("Jak nie to nie")
else:
print("Zła wartość! Giń!!!!")
def władcaElfów():
print('''Witaj kolego. Przed tobą władczyni elfów Alena! W tamtej części lasu czekają na ciebie ogromne cieniołaki. Widzę, że
twój stary łuk jest w kiepskim stanie. Może kupisz mój za jedyne 6 sztuk złota? 1 - kup 2 - nie kupuj''')
if łuk == 1:
print(twojeZłoto2)
elif łuk == 2:
print("Jak nie to nie")
else:
print("Zła wartość! Giń!!!!")
def krainaElfów():
print('''Idziesz północną drogą. Nagle przy drodzę zauważasz niewielką stertę kamieni
pod którą wystaje niewielki woreczek. Co robisz? (1 - sprawdzasz co jest w środku, 2 -
ignorujesz i idziesz dalej)''')
sakiewka = int(input())
twojeZdrowie = 10
twojeZłoto = 5
if sakiewka == 1:
print("Znajdujesz złoto! Niestety, przy okazji ugryzł cię pająk!")
twojeZłoto2 = twojeZłoto + 1
twojeZdrowie2 = twojeZdrowie - 2
print("Twoje złoto: ")
print(twojeZłoto2)
print("Zdrowie: " )
print(twojeZdrowie2)
return twojeZłoto2
return twojeZdrowie2
elif sakiewka == 2:
print("Twoje złoto: ")
print(twojeZłoto)
print("Zdrowie: " )
print(twojeZdrowie)
return twojeZłoto
return twojeZdrowie
else:
print("Zła wartość! Giń!!!!")
władcaElfów()
def krainaKrasnoludów():
print('''Przemierzasz szlak, kierując się na południe. Las nie jest już tak gęsty jak przedtem. W zasięgu wzroku widzisz
góry. Nagle słyszysz głośny krzyk. Przybiegasz i widzisz kupca, który walczy ze złoczyńcą. "Pomóż mi!" - krzyczy kupiec.
"Nie słuchaj go, to mi pomóż" - mówi złoczyńca. Co wybierzesz? (1 - pomóż kupcowi, 2 - pomóż złoczyńcy, 3 - zabij ich obu)
''')
pomoc = int(input())
twojeZdrowie = 10
twojeZłoto = 5
if pomoc == 1:
print("Kupiec jest ci bardzo wdzięczny, niestety jest chciwy i daje ci tylko 1 złoto.")
twojeZłoto2 = twojeZłoto + 1
twojeZdrowie2 = twojeZdrowie
print("Twoje złoto: ")
print(twojeZłoto2)
print("Zdrowie: " )
print(twojeZdrowie2)
return twojeZłoto
return twojeZdrowie2
elif pomoc == 2:
print('''Złoczyńca nie dotrzymuje umowy, ale zabijasz go odnosząc przy tym poważne rany. Za to
plądrujesz całe złoto jakie ma kupiec. Otrzymujesz 5 złota, ale tracisz 5 punktów zdrowia''')
twojeZłoto2 = twojeZłoto + 5
twojeZdrowie2 = twojeZdrowie - 5
print("Twoje złoto: ")
print(twojeZłoto2)
print("Zdrowie: " )
print(twojeZdrowie2)
return twojeZłoto2
return twojeZdrowie2
else:
print("Zła wartość! Giń!!!!")
krasnoludKról()
zagrajPonownie = 'tak'
while zagrajPonownie == 'tak' or zagrajPonownie == 't':
wyświetlIntro()
pierwszeKroki()
widokOkolicy()
wybierzDroge = int(input())
if wybierzDroge == 1:
krainaElfów()
elif wybierzDroge == 2:
krainaKrasnoludów()
else:
print("Zła wartość! Giń!!!!")
print('Chcesz ponownie rozpocząć swoją przygodę? (tak lub nie)')
zagrajPonownie = input()