stifler9 / Dameo

Dameo game (similar to checkers)
1 stars 0 forks source link

Poenostavitev igre #3

Closed andrejbauer closed 6 years ago

andrejbauer commented 6 years ago

Do sedaj sem se pogovarjal samo z Žanom, Nataša se še ni oglasila. Žan je zelo zagret, za Natašo ne vem. Prosim, da mi na tale issue odgovori Nataša. Imam občutek, da vse dela Žan in da Nataša ne pride do besede. Zato se bi rad menil z njo. Na ta issue naj najprej odgovori ona, Žan počakaj, da slišim njeno mnenje.

Glede na to, kakšna koda se je zaenkrat znašla v repozitoriju, se bojim, da bo igra zelo zahtevna.

Razredi za logiko igre niso dobro premišljeni. Na primer, Poteza je celo zaporedje potez, odigraj pa sprejme dve lokaciji. Kako je s tem? Ali ne bi moral odigraj sprejeti Potezo?

Vse pojme je treba popolnoma razjasniti. Napišita v README.md ali kam drugam točne definicije pojmov:

  1. Kaj je stanje igre? Kako je opisano?
  2. Kaj je ena poteza? Metoda moznePoteze() mora vrniti seznam potez in metoda odigraj() mora sprejeti eno potezo. To pa zato, da bodo kasneje lahko delale ostale komponente v igri normalno.
  3. Potez se ne sme shranjevati v atribut, zakaj to počneta?
  4. Metoda, ki odigra potezo Odigraj v Igra.java je tipičen spaghetti code.

Vse to kaže na dejstvo, na katerega sva oba z asistentom opozorajala: dama je zelo zahtevna. Zdaj ko vidim prvo kodo, sem še bolj prepričan, da imam prav, ko me skrbi.

Predlagam, da se naredi naslednje: pravila igre bomo poenostavili. Ko bo narejena poenostavljena igra, bosta lahko postopoma dodajala ostala pravila, do takrat pa ne.

Nova pravila

  1. Vsak žeton je bodisi mož ali kralj.
  2. Možje se premikajo samo naprej, kralji tudi nazaj.
  3. Figura sme preskočiti nasprotnikovo figuro in jo s tem požre, ni pa tega nujno narediti. V eni potezi naredi samo en skok in požre samo eno figuro. Ne dela se zaporedja skokov.
  4. Če figura požre nasportno figuro, je na potezi isti igralec. Lahko dela kar hoče, ni mu treba nadaljevati požiranja z isto figuro.
  5. Mož se premeni v kralja, če se znajde v zadnji vrsti.

Povsem irelevantno je, da to niso pravila neke prave igre. Ta pravila so dovolj komplicirana za vaju. Ko bom videl, da znata to narediti, kot se šika, se bomo pogovarjali o izboljšavah.

Prosim Natašo za mnenje. Njeno mnenje, ne mnenje Žana. Žan bo potem tudi lahko povedal svoje mnenje. Če ne bo nekega tehthnega razloga, zakaj bi vama dovolil delati komplicirano verzijo, se bo delalo to, kar sem predpisal zgoraj.

V skrbi za vaju vaju vzgaja vajin prof. Bauer.

natasataskov commented 6 years ago

Mislim, da je verjetno res najbolje, da narediva poenostavljeno verzijo. A naj potem narediva vse od začetka? Zanima me tudi, ali je vredu, da sva naredila matriko stanja in nisva posebej naredila razreda figure.

andrejbauer commented 6 years ago

Ali bosta vse naredila od začetka, je odvisno od vaju. Jaz bi. A nisem nekje odprl še en issue in na spletni učilnici razlgall, da se ne sme uporabljati int-ov za kodiranje polj? Verjetno je plošča tabela polj in ne tabela figur, razen če mislita, da obstaja "prazna" figura.

natasataskov commented 6 years ago

Sem objavila poenostavljeno verzijo in me zanima, če sem si prav interpretirala nova navodila in kaj lahko še spremenim. Imela sem tudi problem, saj sem pri objavi poenostavljene verzije pomotoma "povozila" težjo verzijo, ki bi jo rada z Žanom orhanila, če se bova odločila nadgradit igro. Ali obstaja kakšen način, kako bi nazaj dobila to verzijo in bi imela potem obe shranjeni na tem repozitoriju?

stifler9 commented 6 years ago

Dodal sem nazaj težjo verzijo. V readme bom obrazložil zakaj sem se odločil za tak pristop in zakaj se mi zdi dober. (v poenostavljeni verziji ni bilo nujnosti in bile so moznepoteze še vedno v atributu , ki jih pa pri poenoistavljeni nebi potreboval)

andrejbauer commented 6 years ago

V gitu nikoli ničesar ne povoziš, ker greš lahko vedno pogledat, kaj je bilo tam včasih. Če mislita imeti "lažjo" in "težjo" verzijo, to pomeni da hočeta imeti dve veji (branch). Recimo, na master daš lažjo, na complicated pa težjo.

andrejbauer commented 6 years ago

@stifler9 zmenili smo se, da se bo naredilo lažjo verzijo. Zakaj daješ nazaj težjo? To ni bilo dogovorjeno. Naredi ustrezni git revert.

stifler9 commented 6 years ago

Jaz bi želel vztrajati pri težji verziji, ker sem logiko dobro naprogramiral in vse deluje kot mora. Poleg tega sem v readme dal ta pravila in obrazložil pojme in moj pristop k programiranju. Ali se lahko potem zmenite z Natašo, če ona posebej naredi enostavno verzijo (na drug branch ali repozitorij)?

andrejbauer commented 6 years ago

Ne, ne bomo se menili z Natašo, da ona dela enostavno verzijo. Naučili se bomo delati v ekipi, očitno bo to zate @stifler9 najpomembnejša lekcija pri tem predmetu. Nehaj solirati, poslušaj nasvete nekoga, ki ima precej več izkušenj kot ti.

Ni res, da si logiko dobro naprogramiral. Daj nazaj enostavno kodo in se lepo malo prilagodi ter zaupaj svojemu profesorju, da ti hoče dobro. Dovolj je bilo diskusije.

stifler9 commented 6 years ago

Profesor, z vsem spoštovanjem, jaz popolnoma razumem da nama želite dobro. Lahko naprogramirava še enostavno verzijo brez problema. Meni se samo zdi, da ste najino kodo pogledali na hitro in vas nekaj stvari moti(vključno z moznimi potezami v atributu) in naju silite v enostavno verzijo. Jaz pa mislim, da sem logiko te igre s pravili napisanimi v readme, dobro premislil. V readme sva tudi opisala pojme in obrazložila najin pristop k programiranju in tudi Matjaž Zaveršnik se je strinjal z najino odločitvijo. Lahko da se seveda motim. Ali Vas lahko samo prosim, da nama razložite zakaj je najin pristop k programiranju napačen in kako bi to lahko naredila bolje?

andrejbauer commented 6 years ago

Na predavanjih sem prosil, da napišeš komentar, kaj sva se dogovorila in na da samo klikneš na "Close". Je tako?

stifler9 commented 6 years ago

Razumel sem, da lahko zaprem issue in naj napišem kaj sva se dogovorila. Napisal sem si komentarje v programsko kodo, zato sem to vezal na commit. Zdaj mi je tudi uspelo izbrisati moznePoteze in maks iz atributov (Potezi sem pa dodal atribut enostavnost, da vem če v tej potezi je' ali ne)

andrejbauer commented 6 years ago

No, potem sva se pa narobe razumela, ko sem rekel "zapri issue in napiši komentar, zakaj ga zapiraš". Ti si to razumel kot "zapri issue, v kodo napiši komentar, kaj sva se v zvezi z issue pogovarjala". Hmm, čudno. No, bo že. Mogoče lahko @natasataskov prevzame "public relations" del tega projekta.

stifler9 commented 6 years ago

Se opravičujem, bom v prihodnje bolj pozorno poslušal.