Skip to content

Instantly share code, notes, and snippets.

@Ch3shireDev
Last active October 15, 2021 08:13
Show Gist options
  • Select an option

  • Save Ch3shireDev/ada764e8772035ccd0783e0b14199928 to your computer and use it in GitHub Desktop.

Select an option

Save Ch3shireDev/ada764e8772035ccd0783e0b14199928 to your computer and use it in GitHub Desktop.
marek-gra.py
import yaml
# Chcielibyśmy mieć następujący mechanizm:
# 1. Gracz wkracza do lokacji i wyświetlają mu się konkretne możliwości.
# 2. Zależnie od wybranej możliwości, gracz przechodzi do kolejnej, konkretnej lokacji.
# 3. Powrót do punktu 1 z inną lokacją.
# 4. Jest możliwość wczytywania historii z osobnego pliku.
data = '''
- id: start
opis: Wkraczasz do ciemnego lasu i idziesz przez dłuższy czas. Docierasz do rozstajów dróg. Jedna wiedzie na północ, druga na południe.
wybory:
- opis: Idź na północ
id: puszcza-1
- opis: Idź na południe.
id: puszcza-2
- id: puszcza-1
opis: Wkraczasz na północ do puszczy, robi się ciemno
wybory:
- opis: Zawróć
id: start
- id: puszcza-2
opis: Wkraczasz na południe puszczy, widzisz duże pole.
wybory:
- opis: Zawróć
id: start
'''
class Lokacja:
def __init__(self, lokacja):
self.id = lokacja['id']
self.opis = lokacja['opis']
self.wybory = lokacja['wybory']
def show(self):
print(self.opis)
print("Drogi:")
for index, wybor in enumerate(self.wybory, start=1):
print(f"{index}. {wybor['opis']}")
choice = input("Twój wybór: ")
choice = int(choice) - 1
return self.wybory[choice]['id']
# with open('zapis.yml', encoding='utf-8') as file:
# tab = yaml.load(file, Loader=yaml.FullLoader)
# file.close()
tab = yaml.load(data, Loader=yaml.FullLoader)
mapa = {element['id']: Lokacja(element) for element in tab}
choice = 'start'
while True:
choice = mapa[choice].show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment