Szczepan86

Obiekty - gra przygodowa

Jan 16th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.13 KB | None | 0 0
  1. # Klasa Lokacja
  2. # Zawiera w sobie wszystkie parametry (właściwości) odnośnie konkretnej lokacji
  3. # Zawiera również metody przydatne przy operacjach na lokacjach
  4.  
  5. class Lokacja():
  6.     # Właściwości klasy Lokacja
  7.     nazwa = "nowa lokacja"
  8.     opis = "nowy opis"
  9.     x = None
  10.     y = None
  11.    
  12.     # metoda wyświetlająca nazwę oraz opis lokacji
  13.     def wyswietl(self):
  14.         print("Lokacja: " + self.nazwa + " (" + str(self.x) + ", " + str(self.y) + ")")
  15.         print(self.opis)
  16.        
  17.     # metoda ustawiająca współrzędne
  18.     def ustawWspolrzedne(self, nowyX, nowyY):
  19.         self.x = nowyX
  20.         self.y = nowyY
  21.  
  22.  
  23. # Klasa Swiat
  24. # Zawiera w sobie informacje na temat całego zbioru (mapy) lokalizacji
  25. # Posiada jedną właściwość (listę lokacji) oraz metody ułatwiające interakcję między poszczególnymi lokacjami
  26. class Swiat():
  27.     # właściwość typu lista przechowująca wszystkie obiekty lokacji
  28.     # w wygodny sposób przechowuje wszystkie referencje do poszczególnych lokacji
  29.     listaLokacji = []
  30.  
  31.     # metoda służąca do dodawania lokacji do świata
  32.     # dodanie lokacji jest równoznaczne z appendowaniem obiektu lokacja do listy lokacji
  33.     def dodajLokacje(self, lokacja):
  34.         self.listaLokacji.append(lokacja)
  35.        
  36.     # metoda zwracająca lokację (obiekt) na podstawie podanych współrzędnych
  37.     # aby znaleźć obiekt iterujemy po elementach z listy i sprawdzamy ich współrzędne
  38.     # w przypadku nie znalezienia obiektu zwracamy None (czyli nic)
  39.     def pobierzLokacje(self, x, y):
  40.         for lokacja in self.listaLokacji:
  41.             if lokacja.x == x and lokacja.y == y:
  42.                 return lokacja
  43.         return None
  44.    
  45.     def sprawdzPolnoc(self, x, y):
  46.         if self.pobierzLokacje(x, y-1):
  47.             return True
  48.         else:
  49.             return False
  50.        
  51.     def sprawdzPoludnie(self, x, y):
  52.         if self.pobierzLokacje(x, y+1):
  53.             return True
  54.         else:
  55.             return False
  56.        
  57.     def sprawdzWschod(self, x, y):
  58.         if self.pobierzLokacje(x+1, y):
  59.             return True
  60.         else:
  61.             return False
  62.  
  63.     def sprawdzZachod(self, x, y):
  64.         if self.pobierzLokacje(x-1, y):
  65.             return True
  66.         else:
  67.             return False
  68.        
  69.     def wyswietlWyjscia(self, x, y):
  70.         wyjscia = "Wyjścia: "
  71.         if self.sprawdzPolnoc(x, y):
  72.             wyjscia = wyjscia + "północ "
  73.         if self.sprawdzPoludnie(x, y):
  74.             wyjscia = wyjscia + "południe "
  75.         if self.sprawdzWschod(x, y):
  76.             wyjscia = wyjscia + "wschód "
  77.         if self.sprawdzZachod(x, y):
  78.             wyjscia = wyjscia + "zachód "
  79.         print(wyjscia)
  80.        
  81.        
  82. class Bohater():
  83.     x = None
  84.     y = None
  85.     imie = ""
  86.    
  87.     def idzNaPolnoc(self, swiat):
  88.         if swiat.sprawdzPolnoc(self.x, self.y):
  89.             self.y = self.y - 1
  90.             print("Idziesz na północ...")
  91.         else:
  92.             print("Nie możesz tam pójść!")
  93.        
  94.     def idzNaPoludnie(self, swiat):
  95.         if swiat.sprawdzPoludnie(self.x, self.y):
  96.             self.y = self.y + 1
  97.             print("Idziesz na południe...")
  98.         else:
  99.             print("Nie możesz tam pójść!")
  100.    
  101.     def idzNaWschod(self, swiat):
  102.         if swiat.sprawdzWschod(self.x, self.y):
  103.             self.x = self.x + 1
  104.             print("Idziesz na wschód...")
  105.         else:
  106.             print("Nie możesz tam pójść!")            
  107.    
  108.     def idzNaZachod(self, swiat):
  109.         if swiat.sprawdzZachod(self.x, self.y):
  110.             self.x = self.x - 1
  111.             print("Idziesz na zachód...")
  112.         else:
  113.             print("Nie możesz tam pójść!")
  114.        
  115. def wykonajAkcje(komenda):
  116.     # wyczysc biale znaki (spacja, tabulacja itp.)
  117.     komenda = komenda.strip()
  118.    
  119.     if komenda == "n" or komenda == "polnoc":
  120.         bohater.idzNaPolnoc(swiat)
  121.         return
  122.  
  123.     if komenda == "s" or komenda == "poludnie":
  124.         bohater.idzNaPoludnie(swiat)
  125.         return
  126.        
  127.     if komenda == "e" or komenda == "wschod":
  128.         bohater.idzNaWschod(swiat)
  129.         return
  130.        
  131.     if komenda == "q" or komenda == "zachod":
  132.         bohater.idzNaZachod(swiat)
  133.         return
  134.    
  135.     print("Nie rozumiem, co masz na myśli...")
  136.  
  137. # stworzenie swiata
  138. swiat = Swiat()
  139.  
  140. # stworzenie bohatera
  141. bohater = Bohater()
  142. bohater.x = 0
  143. bohater.y = 0
  144. bohater.imie = "Zenon"
  145.  
  146. # utworzenie obiektu klasy lokacja
  147. lokacja = Lokacja()
  148. lokacja.nazwa = "Komnata"
  149. lokacja.opis = "Jakiś mój opis komnaty"
  150. lokacja.ustawWspolrzedne(0, 0)
  151. swiat.dodajLokacje(lokacja)
  152.  
  153. lokacja = Lokacja()
  154. lokacja.nazwa = "Korytarz"
  155. lokacja.opis = "Opis korytarza"
  156. lokacja.ustawWspolrzedne(1, 0)
  157. swiat.dodajLokacje(lokacja)
  158.  
  159. lokacja = Lokacja()
  160. lokacja.nazwa = "Brama"
  161. lokacja.opis = "Jakaś brama"
  162. lokacja.ustawWspolrzedne(1, 1)
  163. swiat.dodajLokacje(lokacja)
  164.  
  165. komenda = ""
  166.  
  167. while(komenda != "koniec"):
  168.     print()
  169.     swiat.pobierzLokacje(bohater.x, bohater.y).wyswietl()
  170.     swiat.wyswietlWyjscia(bohater.x, bohater.y)
  171.  
  172.     komenda = input("Co robisz? ")
  173.     wykonajAkcje(komenda)
Add Comment
Please, Sign In to add comment