#kiciochpyta o #python i #json
początkujący level. - PROŚBA O POMOC w wyjaśnieniu dziwnego działania programu...
Tworzę dla treningu grę tekstową typu MUD, ćwiczę sobie tworzenie klas, funkcji i innych takich.
https://github.com/yourij/MUD_GAME
Etap rozgrzebanego kodu więc prosze o zrozumienie. Chwilowo repozytorium jest publiczne na potrzeby tego posta.
W dużym skrócie (wprowadzenie).
Jesteśmy na planszy 3x3 pola (współrzędne pól x=0, 1 lub 2 i y=0, 1 lub 2). Zaczynamy na środku.
Możemy po planszy chodzić, gadać z NPCami, w karczmie zjeść obiad, uratować księżniczkę itp...
Żeby to zrobić, trzeba pójść do wiedźmy, rozwiązać zadanie, otrzymać od niej klucz i z kluczem udać się na pole, gdzie jest księżniczka, otworzyć kluczem bramkę i koniec...
______PROBLEM______:
Początkowo teksty postaci trzymałem w pliku talking.py ale chciałem zaznajomić się z JSONem i stąd modyfikacja, gdzie wiedźma swoje teksty (częściowo) bierze z pliku talking.json
Od czasu tej modyfikacji pseudo-gra zawiesza się po otrzymaniu poleceń od gracza. Tzn żeby przejść dalej trzeba wcisnąć ekstra enter.
Dla przykładowego karczmarza czy też księżniczki (gdzie teksty są jeszcze po staremu) problem nie występuje.
plik talking.py
przykładowy fragment kodu, który dziwnie działa:
if (u_inp=='T' or u_inp=='t'): # T = gadaj z wiedzmą
for phrase in my_json["phrases"]:
u_inp=input(phrase["witch_gives_apple"]) # przyjmij input drukując tekst mówiony przez wiedżmę
kod, który działa poprawnie:
elif (playerPos == innKeeperPos): # podobny fragment rozmowy z innym NPCem bez udziału JSONa
u_inp=input(inn_hello)
if (u_inp=='P' or u_inp=='p'):
print(inn_dish1)
(screen z gry... nie śmiać się, proszę)