Kezdőoldal » Számítástechnika » Programozás » Hogy kell OOP-t nem sértve...

Hogy kell OOP-t nem sértve ezt megcsinálni?

Figyelt kérdés

Tanár kiadta, hogy nem lehet típus lekérdezés és belső paraméterek sem.


Tehát csak meg kell hívni az adott függvényt, adott objektumon majd az lekezelni valahogyan.


"Tell, don't ask!" alapján...


Pl.:


Van egy varázsló, aki más varázslóktól vehet el dolgokat ha azok levannak bénulva.


Akkor bénul le egy varázsló ha valaki rárakott egy bénító varázslatot.


A bénító varázslatok tehát egy dinamikus tömben vannak a varázslón, de nyílván a bénító varázslaton kívül van most más határsú is.

(Dupla támadást ad, sebezhetetlenség stb...)


....................


Ha lopni szeretnék a varázslótól hogyan tehem meg?


Elsőre nagyon egyszerűnek tűnik, mert szimplán végig megyek a rajta lévő varázslatokon, amikor bejön a lopás kérés, és ha van rajta bénítás, akkor tudok lopni, de itt jön az hogy nem használhatok típus lekérdezést. Tehát nem iterálhatom végig a listát, hogy van-e benni adott varázslat amit keresek.


Egy másik elsőre evidens megoldás, hogy a varázslatok ősosztályából mindengyik megvalósítja a saját varázslatát úgy hogy felülírják a "doMagic()" függvényét így amikor rákerül az adott varázslat a varázslóra, akkor az átállít egy változót a varázslóban, hogy "isStunned = true" és amikor vége a varázslat hatásának, akkor meg "isStunned = false" és akkor máris minden jó.


De sajnos nem lehet belső paramétereket használni.


Ti hogy oldanátok meg ezt a feladatot?


(Ez egy hosszú nagy házi része, aminek nagy része készen van, de ezen nem tudok túllendűlni)



2022. márc. 10. 00:47
1 2
 11/12 A kérdező kommentje:

10#


Azért nehéz kérdés, hogy ilyenekre reagáljak-e, mert ha nem akkor a fejedben és talán másokban is az könyvelődik el, hogy "nyertél" és kicsit jól érzed magad.


Ha válaszolok és foglalkozom veled, akkor meg én vesztek, mert feleslegesen pazarlom az időmet és feleslegesen húzom fel magam. Így kikövetem a kérdést, mert amúgy is megtaláltuk hogy hogy csináljuk a házik.


Ha van kedved légyszi írj rám, át küldöm a feladat kiírást és miután leadtuk a házit a megoldásunk egy részét is szívesen.

Aztán a félév végén akár az egészet ha igényt tartasz rá.

(Előtte inkább nem, nehogy kikerüljön a netre aztán valamelyik szaktársunk másol és plágium gyanus lesz, amire rettenetesen pici az esély, de azért ... na ... )


Szóval tényleg írj rám ha folytatni akarod én most kikövetem a beszélgetést.

2022. márc. 11. 00:34
 12/12 anonim ***** válasza:
0%

A feladat kiírását ide is betehetnéd.


De nem arra reagáltam, mert azt nem ismerem.

Amit te írsz, azok a baromságok.


Nincs olyan, hogy tipus lekérdezés, nincs olyan sem, hogy belső paraméterek, nincs függvényhívás adott objektumon, nincs annak lekezelése sem, és nem lehet egy függvényt felülírni sem.


A dolog úgy néz ki, hogy van egy-egy elem, aminek vannak tulajdonságai.


Pl. egy játéktér felépítésekor a karakter akkor tud mozogni /a levegőben/ és ütkozni /a folddel vagy más karakterrel/, ha ezeknek az elemeknek a tulajdonságai olyanok, amilyeneket a játék megkiván.

A grafika ugyanaz, totál ugyanolyan - mondjuk 16 x 16 pixeles - képekből áll ossze, de mégis, ha felugrik a karakter, akkor vissza is esik és a levegőben tud mozogni, de a hegynek nem tud nekimenni.

Ez ezért van, mert van a grafikus elemeknek egy-egy property list-je és abban lehet inicializálni a tulajdonságaikat.


Te viszont értelmetlen zagyvaságokat nyomsz ide be.

2022. márc. 11. 00:47
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!