Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Klasa Lokacja
- # Zawiera w sobie wszystkie parametry (właściwości) odnośnie konkretnej lokacji
- # Zawiera również metody przydatne przy operacjach na lokacjach
- class Lokacja():
- # Właściwości klasy Lokacja
- nazwa = "nowa lokacja"
- opis = "nowy opis"
- x = None
- y = None
- # metoda wyświetlająca nazwę oraz opis lokacji
- def wyswietl(self):
- print("Lokacja: " + self.nazwa + " (" + str(self.x) + ", " + str(self.y) + ")")
- print(self.opis)
- # metoda ustawiająca współrzędne
- def ustawWspolrzedne(self, nowyX, nowyY):
- self.x = nowyX
- self.y = nowyY
- # Klasa Swiat
- # Zawiera w sobie informacje na temat całego zbioru (mapy) lokalizacji
- # Posiada jedną właściwość (listę lokacji) oraz metody ułatwiające interakcję między poszczególnymi lokacjami
- class Swiat():
- # właściwość typu lista przechowująca wszystkie obiekty lokacji
- # w wygodny sposób przechowuje wszystkie referencje do poszczególnych lokacji
- listaLokacji = []
- # metoda służąca do dodawania lokacji do świata
- # dodanie lokacji jest równoznaczne z appendowaniem obiektu lokacja do listy lokacji
- def dodajLokacje(self, lokacja):
- self.listaLokacji.append(lokacja)
- # metoda zwracająca lokację (obiekt) na podstawie podanych współrzędnych
- # aby znaleźć obiekt iterujemy po elementach z listy i sprawdzamy ich współrzędne
- # w przypadku nie znalezienia obiektu zwracamy None (czyli nic)
- def pobierzLokacje(self, x, y):
- for lokacja in self.listaLokacji:
- if lokacja.x == x and lokacja.y == y:
- return lokacja
- return None
- def sprawdzPolnoc(self, x, y):
- if self.pobierzLokacje(x, y-1):
- return True
- else:
- return False
- def sprawdzPoludnie(self, x, y):
- if self.pobierzLokacje(x, y+1):
- return True
- else:
- return False
- def sprawdzWschod(self, x, y):
- if self.pobierzLokacje(x+1, y):
- return True
- else:
- return False
- def sprawdzZachod(self, x, y):
- if self.pobierzLokacje(x-1, y):
- return True
- else:
- return False
- def wyswietlWyjscia(self, x, y):
- wyjscia = "Wyjścia: "
- if self.sprawdzPolnoc(x, y):
- wyjscia = wyjscia + "północ "
- if self.sprawdzPoludnie(x, y):
- wyjscia = wyjscia + "południe "
- if self.sprawdzWschod(x, y):
- wyjscia = wyjscia + "wschód "
- if self.sprawdzZachod(x, y):
- wyjscia = wyjscia + "zachód "
- print(wyjscia)
- class Bohater():
- x = None
- y = None
- imie = ""
- def idzNaPolnoc(self, swiat):
- if swiat.sprawdzPolnoc(self.x, self.y):
- self.y = self.y - 1
- print("Idziesz na północ...")
- else:
- print("Nie możesz tam pójść!")
- def idzNaPoludnie(self, swiat):
- if swiat.sprawdzPoludnie(self.x, self.y):
- self.y = self.y + 1
- print("Idziesz na południe...")
- else:
- print("Nie możesz tam pójść!")
- def idzNaWschod(self, swiat):
- if swiat.sprawdzWschod(self.x, self.y):
- self.x = self.x + 1
- print("Idziesz na wschód...")
- else:
- print("Nie możesz tam pójść!")
- def idzNaZachod(self, swiat):
- if swiat.sprawdzZachod(self.x, self.y):
- self.x = self.x - 1
- print("Idziesz na zachód...")
- else:
- print("Nie możesz tam pójść!")
- def wykonajAkcje(komenda):
- # wyczysc biale znaki (spacja, tabulacja itp.)
- komenda = komenda.strip()
- if komenda == "n" or komenda == "polnoc":
- bohater.idzNaPolnoc(swiat)
- return
- if komenda == "s" or komenda == "poludnie":
- bohater.idzNaPoludnie(swiat)
- return
- if komenda == "e" or komenda == "wschod":
- bohater.idzNaWschod(swiat)
- return
- if komenda == "q" or komenda == "zachod":
- bohater.idzNaZachod(swiat)
- return
- print("Nie rozumiem, co masz na myśli...")
- # stworzenie swiata
- swiat = Swiat()
- # stworzenie bohatera
- bohater = Bohater()
- bohater.x = 0
- bohater.y = 0
- bohater.imie = "Zenon"
- # utworzenie obiektu klasy lokacja
- lokacja = Lokacja()
- lokacja.nazwa = "Komnata"
- lokacja.opis = "Jakiś mój opis komnaty"
- lokacja.ustawWspolrzedne(0, 0)
- swiat.dodajLokacje(lokacja)
- lokacja = Lokacja()
- lokacja.nazwa = "Korytarz"
- lokacja.opis = "Opis korytarza"
- lokacja.ustawWspolrzedne(1, 0)
- swiat.dodajLokacje(lokacja)
- lokacja = Lokacja()
- lokacja.nazwa = "Brama"
- lokacja.opis = "Jakaś brama"
- lokacja.ustawWspolrzedne(1, 1)
- swiat.dodajLokacje(lokacja)
- komenda = ""
- while(komenda != "koniec"):
- print()
- swiat.pobierzLokacje(bohater.x, bohater.y).wyswietl()
- swiat.wyswietlWyjscia(bohater.x, bohater.y)
- komenda = input("Co robisz? ")
- wykonajAkcje(komenda)
Add Comment
Please, Sign In to add comment