Dragon

Setup

>>> from dragon import Dragon

Name

  • Smok przy tworzeniu ma nazwę

  • Smok przy tworzeniu podnosi błąd jeżeli nie ma nazwy

  • Smok przy tworzeniu ma losowe punkty życia z zakresu 50 do 100

Stwórz smoka o nazwie "Wawelski":

>>> wawelski = Dragon('Wawelski')

Stworzenie smoka bez nazwy podnosi błąd:

>>> wawelski = Dragon()
Traceback (most recent call last):
TypeError: Dragon.__init__() missing 1 required positional argument: 'name'

Health

Można ustawiać minimalną i maksymalną wartość punktów życia smoka:

>>> Dragon.HEALTH_MIN
50
>>> Dragon.HEALTH_MAX
100

Smok przy tworzeniu ma losowe punkty życia z zakresu:

>>> dragon = Dragon('Name')
>>> dragon.health
98

Position

  • Smok przy tworzeniu zajmuje domyślną pozycję x=0 y=0

  • Smok przy tworzeniu może mieć ustawioną dowolną pozycję

  • Smok w trakcie gry może zwrócić pozycję którą zajmuje

  • Smok w trakcie gry może być ustawiony w dowolne miejsce ekranu

  • Smok w trakcie gry może zmienić pozycję w jedną stronę (w prawo, w lewo, w górę, w dół) o zadaną wartość

  • Smok w trakcie gry może zmienić pozycję horyzontalnie (w prawo i w lewo) o zadaną wartość

  • Smok w trakcie gry może zmienić pozycję wertykalnie (w dół i w górę) o zadaną wartość

  • Smok w trakcie gry może być jednocześnie przesuwany dookólnie (w prawo i w lewo i w dół i w górę) o zadaną wartość

Ustaw inicjalną pozycję smoka na x=50, y=100:

>>> dragon = Dragon('Name', position_x=50, position_y=100)

Pobierz aktualną pozycję:

>>> dragon.get_position()
(50, 100)

Ustaw nową pozycję smoka na x=10, y=20:

>>> dragon.set_position(x=10, y=20)

Przesuń smoka w lewo o 10 i w dół o 20:

>>> dragon.change_position(left=10, down=20)

Przesuń smoka w lewo o 10 i w prawo o 15:

>>> dragon.change_position(left=10, right=15)

Przesuń smoka w prawo o 15 i w górę o 5:

>>> dragon.change_position(right=15, up=5)

Przesuń smoka w dół o 5:

>>> dragon.change_position(down=5)

Damage

  • Smok w trakcie gry może zadawać losowe obrażenia z przedziału od 5 do 20

  • Smok w trakcie gry może otrzymywać obrażenia

Smok zadaje obrażenia (losowo 5-20):

>>> dmg = dragon.make_damage()
>>> print(dmg)
6

Zadaj X obrażeń smokowi:

>>> try:
...     dragon.take_damage(100)
... except dragon.IsDead:
...     print('Dragon is dead')
Dragon is dead

Testing

$ run/test-unit
$ run/test-doc
$ run/test-feature

Help

$ run/help-feature