• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc w rozwiązaniu zadania

Object Storage Arubacloud
+1 głos
608 wizyt
pytanie zadane 17 grudnia 2017 w JavaScript przez ldqpbl Nowicjusz (130 p.)
Mam wielką prośbę o pomoc w rozwiązaniu zadania, którego polecenie wklejam poniżej. Nie wiem jak się za to zabrać....

Oto zadanie:

 Stwórz klasę abstrakcyjną ```RPGCharacter```. Niech konstruktor tej klasy przyjmuje następujący parametr:
- ```name``` - imię

Dodatkowo niech konstruktor tworzy następujące właściwości dla każdego obiektu:
- ```power``` - siła,
- ```intelligence``` - inteligencja
- ```luck``` - szczęście

Na podstawie tej klasy stwórz 3 klasy dziedziczące: ```Dwarf```, ```Orc``` i ```Elf``` (czyli odpowiednio: Krasonolud, Ork oraz Elf).

Konstruktory tych klas powinny nadpisać konstruktor klasy abstrakcyjnej:
- wykorzystaj konstruktor klasy abstrakcyjnej aby ustawiać każdemu obiektowi imię (```name```),
- niech każda postać posiada określoną siłę (```power```) w zależności od rasy (wylosuj liczbę z odpowiedniego zakresu):
    * Krasnoludy - siła w zakresie od 40 - 100
    * Orki - siła w zakresie od 50 - 100
    * Elfy - siła w zakresie od 30 - 80   
- niech każda postać posiada określoną inteligencję (```intelligence```) w zależności od rasy (wylosuj liczbę z odpowiedniego zakresu):
     * Krasnoludy - mądrość w zakresie od 40 - 80
     * Orki - mądrość w zakresie od 5 - 20
     * Elfy - mądrość w zakresie od 60 - 100
- niech każda postać posiada określone szczęście (```luck```) w zależności od rasy (wylosuj liczbę z odpowiedniego zakresu):
     * Krasnoludy - szczęście w zakresie od 40 - 100
     * Orki - szczęście w zakresie od 1 - 100
     * Elfy - szczęście w zakresie od 20 - 100
- dodatkowo niech każda klasa odpowiednio ustawia piątą właściwość - rasę (```race```) na odpowiednią wartość (```Dwarf```, ```Orc``` lub ```Elf```) w zależności od klasy.

Następnie stwórz 3 obiekty na bazie klas dziedziczących i przekaż im następujące imiona: ```Durin Kamienny Topór``` (__krasnolud__), ```Urk'har Niszczyciel``` (__ork__), ```Naylee z Nieśmiertelnego Lasu``` (__elf__).

Na końcu dodaj do klasy abstrakcyjnej 3 metody:
- ```fight``` - metoda przyjmuje jako parametr obiekt stworzony na podstawie innej klasy. Zadaniem metody jest sprawdzenie, która z naszych postaci wygra w walce wręcz (porównujemy wartości właściwości ```power```). Metoda zwraca imię zwycięzcy. W przypadku remisu (każdy z zawodników nie ma siły walczyć) zwróć ciąg znaków ```Remis!```.
- ```playChess``` - metoda przyjmuje jako parametr obiekt stworzony na podstawie innej klasy. Zadaniem metody jest sprawdzenie, która z naszych postaci wygra w grze w szachy (porównujemy wartości właściwości ```intelligence```). Metoda zwraca imię zwycięzcy. W przypadku remisu (partia szachów niemożliwa do skończenia) zwróć ciąg znaków ```Remis!```.
- ```tossCoin``` - metoda przyjmuje jako parametr obiekt stworzony na podstawie innej klasy. Zadaniem metody jest sprawdzenie, która z naszych postaci wygra w rzucie monetą (porównujemy wartości właściwości ```luck```). Metoda zwraca imię zwycięzcy. W przypadku remisu (moneta spadła na krawędź) zwróć ciąg znaków ```Remis!```.

Przykład:

```javascript
const dwarf = new Dwarf("Durin Kamienny Topór");
const orc = new Orc("Urk'har Niszczyciel");
const elf = new Elf("Naylee z Nieśmiertelnego Lasu");

orc.fight(elf); // "Urk'har Niszczyciel" - gdyż akurat ten ork jest silniejszy do elfa
elf.playChess(dwarf) // "Naylee z Nieśmiertelnego Lasu" - gdyż akurat ten elf jest mądrzejszy od krasnoluda
dwarf.tossCoin(elf) // "Naylee z Nieśmiertelnego Lasu" - gdyż akurat ten elf ma więcej szczęścia niż krasnolud
 

Jakiś chętny śmiałek?

z góry dziękuję
2
komentarz 17 grudnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Przecież w JS nie ma klas abstrakcyjnych... ?
1
komentarz 18 grudnia 2017 przez niezalogowany

W teorii nie ma, w praktyce dość łatwo taką konstrukcję stworzyć

komentarz 18 grudnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)
zgadza się ale nie wiem czy osoba dopiero zaczynająca przygode z js powinna bawić sie w takie rzeczy... wg mnie najpierw lepiej poznać prototypy żeby potem wiedzieć jak to wszystko działa zamiast prób na wstępie imitowania OOP java itp.
komentarz 18 grudnia 2017 przez niezalogowany
Takie zadanie dostała ¯\_(ツ)_/¯

2 odpowiedzi

0 głosów
odpowiedź 17 grudnia 2017 przez Kamil Naja Nałogowiec (27,410 p.)
Na forum nie dajemy gotowców
komentarz 17 grudnia 2017 przez ldqpbl Nowicjusz (130 p.)
  1. Nie prosiłem o gotowca, a o pomoc,
  2. widziałem tutaj masę gotowców i z niektórych nawet sam korzystałem.
  3. Dziękuję za odpowiedź
0 głosów
odpowiedź 18 grudnia 2017 przez mtk3d Nałogowiec (46,690 p.)

@Kamil Naja na forum nie prosimy o gotowce. Dodawanie to już co innego.

A co do zadania, to wygląda ono, jakby ktoś wziął zadanie do byle jakiego języka i kazał rozwiązać w JS.

W JS nie ma klas abstrakcyjnych. Jest jedynie dziedziczenie klas. 

Tak w zasadzie, to w JS nawet klas nie ma wink

Podobne pytania

–1 głos
2 odpowiedzi 314 wizyt
pytanie zadane 18 kwietnia 2018 w C i C++ przez gimnazjum Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 601 wizyt

92,565 zapytań

141,418 odpowiedzi

319,604 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...