11. Exam

11.1. Dragon (version beta)

  • Complexity level: medium

  • Lines of code to write: 120 lines

  • Estimated time of completion: 30 min (±10 min), then 30 min live coding with instructor

  • Filename: solution/intermediate_dragon.py

  • Warning: Don't delete code, assignment will be continued

../_images/dragon2.gif

Figure 32. Firkraag dragon from game Baldur's Gate II: Shadows of Amn

  1. Zaimportuj smoka z poprzedniej części zadania ("Part 1")

  2. Wykorzystaj mechanizm dziedziczenia dla Smoka

  3. Nie modyfikuj klasy smoka z poprzedniej części

  4. Smok nie może wyjść poza obszar ekranu (1024x768) + napisz doctest

  5. Jeżeli dojdzie do granicy ekranu, to przesuwając dalej, pozycja będzie ustawiona na maks

  6. Zmień smokowi punkty życia na losowy int z zakresu 100 do 150

  7. Stwórz bohatera "Jan Twardowski":

    • losowe punkty życia (200-250)

    • zadaje losowe obrażenia (1-15)

    • klasa postaci (domyślnie "Warrior")

    • Bohater może przyjmować obrażenia

    • Bohater może zginąć

    • Bohater może poruszać się po planszy

  8. Wszystkie istoty mają statusy:

    • "Full Health" - gdy punkty życia 100% (zastąp status "alive")

    • "Injured" - gdy punkty życia 99% - 75%

    • "Badly Wounded" - gdy punkty życia 74% - 25%

    • "Near Death" - gdy punkty życia 24% - 1%

    • "Dead" - gdy punkty życia poniżej lub równe 0%

  9. Bohater przejmuje złoto smoka, jeżeli go zabije

  10. Przeprowadź walkę, tak długo aż ktoś pierwszy nie zginie

  11. Jeżeli konieczne jest wprowadzenie nowej metody, klasy lub pól to należy to zrobić

Hint
  • Aby zaimportować trzeba najpierw w katalogu stworzyć pusty plik __init__.py