Advertisement
drakon-firestone

Lekcja 4 - Zadania

Mar 12th, 2023 (edited)
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.71 KB | None | 0 0
  1. class Item():
  2.     def __init__(self, name, price):
  3.         self.name = name
  4.         self.price = price
  5.  
  6.     def get_info(self):
  7.         print(f'Item name: {self.name}')
  8.         print(f'Price: {self.price}')
  9.  
  10.     def use(self):
  11.         print(f'Using item {self.name}...')
  12.  
  13. class HP_Potion(Item):
  14.     def __init__(self, name, price, recoveredHP):
  15.         super().__init__(name, price)
  16.         self.recoveredHP = recoveredHP
  17.  
  18.     def upgrade(self):
  19.         # self.recoveredHP *= 2
  20.         self.recoveredHP = 2 * self.recoveredHP
  21.         print(f'Upgraded potion {self.name}')
  22.  
  23.     def get_info(self):
  24.         super().get_info()
  25.         print(f'+{self.recoveredHP}HP')
  26.  
  27.     def use(self):
  28.         super().use()
  29.         print(f'Player recovered {self.recoveredHP} HP')
  30.  
  31. stick = Item("Stick", 1)
  32. stick.get_info()
  33. stick.use()
  34.  
  35. potion = HP_Potion("Lesser Health Potion", 20, 15)
  36. potion.get_info()
  37. potion.upgrade()
  38. potion.use()
  39.  
  40.  
  41. https://imgur.com/a/xyg6K8x
  42.  
  43. Zad. 1
  44. Dodaj implementację klasy Weapon i Armor do kodu z dzisiejszych zajęć
  45. Stwórz przykładowy obiekt klas i przetestuj ich działanie (metody).
  46.  
  47. Zad. 2
  48. Wymyśl jakąś klase przedmiotu dziedziczącą z klasy Item i zapisz jej implementację.
  49. Stwórz przykładowy obiekt klasy i przetestuj jego działanie (jego metody).
  50.  
  51.  
  52. ###################################
  53. ### ZADANIA DOMOWE DLA CHĘTNYCH ###
  54. ###################################
  55.  
  56. # klasa Zwierzę
  57. class Zwierze():
  58.     def __init__(self, wiek, imie):
  59.         self.wiek = wiek
  60.         self.imie = imie
  61.  
  62.     def wydajDzwiek(self):
  63.         print(f"{self.imie} wydaje dzwiek")
  64.        
  65.     def jedz(self):
  66.         print(f"{self.imie} je")
  67.  
  68. '''
  69. Zad.1.
  70. Stwórz klasę Ptak i dodaj metodę lec(), klasa ma dziedziczyć po klasie
  71. Zwierze. Następnie dodaj kolejną klasę Orzel, dziedziczaca po Ptak, która ma
  72. mieć metodę poluj(), w której wywołamy metodę lec() z klasy nadrzędnej i dodamy dodatkowy tekst o polowaniu.
  73. Następnie stwórz obiekt klasy Orzel i wywołaj wszystkie metody.
  74. '''
  75.  
  76.  
  77. '''
  78. Zad.2.
  79. Dodaj do zadania o fugurach z poprzedniej lekcji(https://pastebin.com/tqprY2ka) klasę
  80. bazową Figura i umieść w niej metody odpowiedzialne za wyświetlanie obwodu i pola. Niech konstruktor klasy bazowej posiada pola obówd i pole i wyświetla je za pomocą odpowiedniej metody (metod).
  81.  
  82. Następnie spraw aby Kolo i Prostokat dziedziczyły po tej klasie i usuń ich
  83. definicje metod pokaż_pole i pokaż_obowd z klas Koło i Prostokąt.
  84. Utwórz przykładowe obiekty Koło i Prostokąt i sprawd czy funkcje działają prawidłowo.
  85. '''
  86.  
  87.  
  88. '''
  89. Zad. dod. 1.
  90. Stwórz klasę Przedmiot(Item) zawierającą wartość przedmiotu, jego wagę oraz nazwę.
  91. Niech posiada też takie metody:
  92. - PokazInfo(ShowInfo) - wyświetlającą informację o przedmiocie
  93. - Użyj(Use) - która wypisuje informację o użyciu danego przedmiotu.
  94. '''
  95.  
  96. '''
  97. Zad. dod. 2.
  98. Stwórz klasę Bohater (Hero) zawierającą imię bohatera, maksymalny udźwig, sakiewkę (ilość pieniędzy bohatera) oraz jego ekwipunek. Ekwipunek powinien być listą/słownikiem przedmiotów, które posiada bohater.
  99. Dodaj do bohatera metodę DodajPrzedmiot(AddItem) dodającą przedmiot do ekwipunku - niech dodaje ona przedmioty tylko jeśli nie przekroczyliśmy maksymalnego udźwigu.
  100. Dodaj do bohatera metodę sprzedaj przedmiot - niech sprawdza czy gracz posiada dany przedmiot w ekwipunku - jeśli tak niech zostanie usunięty z ekwipunku a jego wartość zwiększy zawartość sakiewki gracza.
  101. '''
  102.  
  103. '''
  104. Zad. dod. 3.
  105. Dodaj do konstruktora klasy Przedmiot(Item) informacje do którego bohatera należy przedmiot (niech będzie zapamiętany w zmiennej obiektu).
  106.  
  107. Dodaj do klasy Bohater(Hero) aktualną i maksymalną liczbę punktów życia bohatera.
  108.  
  109. Dodaj klasę pochodną od klasy Przedmiot(Item) - MiksturaLeczenia(HealthPotion), niech posiada ona zmienną mówiącą ile punktów życia bohatera ona odnawia. Zmień sposób działania metody Użyj(Use) w metodzie MiksturaLeczenia(HealthPotion) tak aby odnawiała ona tyle życia bohatera ile ma zapisane (ale niech nie przekracza to maksymalnych punktów życia gracza).
  110. '''
  111.  
  112. '''
  113. Zad. dod. 4.
  114. Dodaj nową klasę pochodną od klasy Przedmiot(Item) - Broń(Weapon). Niech posiada ona ilość punktów obrażeń.
  115. Dodaj metodę UstawCel(gracz) która będzie brała za argument cel ataku. Zmień sposób działania metody Użyj(Use) z broni tak aby zadawała obrażenia celowi.
  116.  
  117. Dodaj w bohaterze zmienną broń na aktualną broń gracza i dodaj metodę ZałóżBroń(EquipWeapon) która ustawia jaką broń mamy założoną.
  118.  
  119. Dodaj do Bohatera(Hero) metodę Atakuj(gracz) w której zaatakujemy drugiego gracza, czyli użyjemy metod UstawCel() oraz Use() z aktualnie założonej broni.
  120. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement