Teaching-projects / SOE-SZTA-2021-Tuti-a-moodle

0 stars 0 forks source link

Fapados RPG (act 1) #1

Closed Keelorath closed 3 years ago

Keelorath commented 3 years ago

Kedzetben létrehoztunk 2 classt (warrior és mage) ami a specializációkat reprezentálja. Létrehoztunk egy interface-t amit implementáltunk mind a két classhoz. Végül egy combattal teszteltük őket.

hegyhati commented 3 years ago

No, hat Ti nem azt csinaltatok, amit kertem, hanem azt meg meg sok mindent. Az onszorgalmat ertekelem, csak ha elore megcsinaljatok a feladatokat, akkor kesobb nem lesznek, es ezzel pont bizonyos dolgok nem jonnek majd ugy ki. Pl ket parhuzamos szalon kell megcsinalni valamit, ami ugyanazt a kodreszletet turkalna, de ha Nektek mar eleve benne van az egyik, akkor nem lesz conflict, igy pont a lenyeg marad el. Szoval alapvetoen azt kernem / javasolnam, hogy ne dolgozzatok "elore", ha van egy specifikacio, akkor kb az legyen meg :-)

Node ettol fuggetlenul:

Amguy mondom, szuper, meg csinaltatok koddokumentaciot is (ami szinten nem volt meg keres, kesobb lesz), git history is tetszik. En most "visszabutitanam" kicsit a programotokat, de ha megtartjatok, amiatt sem "akadekosokodok". Viszont a fentieket akkor tessek rendbetenni.

Keelorath commented 3 years ago

Köszönjük a visszajelzést! Én voltam az aki mondta hogy több spec legyen. Egy kicsit zavart, hogy egy "RPG"-ben csak 1 spec van, de akkor a jövőbe visszafogom magam :) . Amiket írtál rövidesen orvosoljuk.

hegyhati commented 3 years ago

Ha spoilerezni szeretnel, lesd meg nyugodtan, mik voltak Gyorben, hasonlo dolgok lesznek itt is. Meg annyi jutott eszembe, hogy bar a java final lenyegesen gyengebb valami, mint a c++ const-ja, de azert ahol lehet/indokolt,ott legyen ott a final.

Keelorath commented 3 years ago

Mondom, nem szándékoztam előre haladni és elrontani a poént. Csak az az egy dolog engem személyesen zavart és ennyi. Magamnak se szeretnék spoilereznia Győri csapat kódját figyelgetve.

Keelorath commented 3 years ago

A public setHealth problémát megoldottuk és a warriorból csináltunk egy "default" Entity-t. Nézd meg mégegyszer légyszives.

hegyhati commented 3 years ago

Az attack nagyon bloat. pl:

        var enemyDefense = other.getDefense();
        var ownAttack = getAttack();

        var damage = ownAttack - enemyDefense;

helyett pl

int damage = getAttack()-other.getDdefense();

Rule of thumb: ha egy valtozonak inicializalaskor erteket adsz, aztan egyszer hasznalod csak osszesen utana, akkor az inicializalo kodot odairhatnad, es olvashatobb lesz a kod, kevesebb a hibalehetoseg, stb.

A masik, hogy a var oke, type inference rendben van, de amikor egy int lenne a dolog, akkor igazabol begepelni ugyanannyi, csak az olvasonak nehezebb olvasni, meg nem latja azonnal, IDE-nek is nehezebb lekovetni. Amikor a tipus mondjuk egy Hashmap<String,List<Integer>> akkor ertheto, hogy jol jon a var. Ez csak minor megjegyzes.

A hp<0 logikat leellenorizni dontsetek el, kinek a felelossege? Ha a setHealth-nek, akkor O csinalja.Ha nem neki (akkor meg sok ertelme nincs hogy kulon fuggveny van ra), akkor onnet keruljon ki. De 1 helyen legyen ez a logika tesztelve.

vadalf commented 3 years ago

attack() metódusban a damage <= 0 feltétel azt nézi csak, hogy tudott-e sebezni, mert egy negatív szám az egy heal-nek számítana. Logikailag értelmetlen lenne, ha magas defense miatt kap egy heal-t támadás után egy egység.

hegyhati commented 3 years ago

image

vadalf commented 3 years ago

Remélhetőleg így most jobban néz ki a dolog:

hegyhati commented 3 years ago

wunderbar :-)