2. Dragon (version beta)

  • Assignment: Dragon (version beta)

  • Complexity: medium

  • Lines of code: 120 lines

  • Time: 60 min (±10 min), then 30 min live coding with instructor

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

../_images/dragon.gif

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

2.1. English

2.2. Polish

  1. Zmodyfikuj smoka z pierwszej części

  2. Smok nie może wyjść poza obszar ekranu (1024x768)

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

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

  5. Stwórz bohatera "Pan Twardowski":

    1. losowe punkty życia (200-250)

    2. zadaje losowe obrażenia (1-15)

    3. klasa postaci (domyślnie "Warrior")

    4. Bohater może przyjmować obrażenia

    5. Bohater może zginąć

    6. Bohater może poruszać się po planszy

  6. Wszystkie istoty mają statusy:

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

    2. "Injured" - gdy punkty życia 99% - 75%

    3. "Badly Wounded" - gdy punkty życia 74% - 25%

    4. "Near Death" - gdy punkty życia 24% - 1%

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

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

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

  1. Kiedy punkty życia dowolnej postaci (smok lub bohater) spadną do lub poniżej zera:

    1. Postaci nie można zadawać obrażeń

    2. Postać nie może zadawać obrażeń

    3. Postać nie może się poruszać

  1. Wymagania niefunkcjonalne:
    1. Zadanie jest symulacją procesu developmentu

    2. Trener zachowuje się jak Product Owner z niewielką techniczną wiedzą

    3. Ty jesteś inżynierem oprogramowania, który musi podejmować decyzje i ponosić ich konsekwencje

    4. Zadanie jest tylko narracją do demonstracji OOP i dobrych praktyk programowania

    5. Wyliczona pozycja Smoka na końcu gry powinna być x=20, y=40

    6. Możesz wprowadzać dodatkowe pola, metody, funkcje, zmienne, stałe, klasy, obiekty, co tylko chcesz

    7. Nie korzystaj z modułów spoza standardowej biblioteki Pythona

    8. Zadanie jest specyfikacją wymagań biznesowych, a nie dokumentacją techniczną, tj. "co Smok ma robić, a nie jak to ma robić"

    9. Nie musisz trzymać się kolejności punktów i podpunktów w zadaniu

    10. Jest to wersja alpha więc bez dodatkowych funkcjonalności (np. sprawdzanie koordynatów, wychodzenia poza planszę itp.)

    11. Możesz stworzyć testy, np. unittest lub doctest

    12. Nie przeglądaj rozwiązań ani treści kolejnych części zadania; jeżeli zaglądniesz w przód, to zepsujesz sobie zabawę i naukę

2.3. Solution

  • EN: Note, that this will spoil your fun and learning

  • PL: Zwróć uwagę, że to zepsuje Twoją zabawę i naukę

  • Solution