Hry, Algoritmy, Programy a jiné hrátKY
2048-3: Krok - Verze k tisku

+- Hry, Algoritmy, Programy a jiné hrátKY (https://hapky.fel.cvut.cz/forum)
+-- Fórum: Úlohy (https://hapky.fel.cvut.cz/forum/forumdisplay.php?fid=1)
+--- Fórum: 2048-3 - 2048: Krok (https://hapky.fel.cvut.cz/forum/forumdisplay.php?fid=26)
+--- Téma: 2048-3: Krok (/showthread.php?tid=24)



2048-3: Krok - jonas.somora@seznam.cz - 11-20-2018

Zdravím,
mohl by mi někdo prosím vysvětlit, co znamená tento Error:

 ERROR: When calling "move_tiles([[8, 4, 4, 2], [8, 4, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],"up")", the first output and the input board should be different objects, but they have the same identity.

zkoušel jsem tuto situaci vložit do simulátoru ručně a vše proběhlo bez problémů...
Předem děkuji za odpověď.


RE: 2048-3: Krok - xposik - 11-21-2018

(11-20-2018, 07:17 PM)jonas.somora@seznam.cz Napsal(a):  Zdravím,
mohl by mi někdo prosím vysvětlit, co znamená tento Error:

 ERROR: When calling "move_tiles([[8, 4, 4, 2], [8, 4, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],"up")", the first output and the input board should be different objects, but they have the same identity.

zkoušel jsem tuto situaci vložit do simulátoru ručně a vše proběhlo bez problémů...
Předem děkuji za odpověď.

Dobrý den.

Tato chyba znamená to, že funkce vrací stejný objekt (seznam seznamů), který dostala jako svůj argument, jen s pozměněným obsahem. Tím si zaděláváte na nečekané a těžko odhalitelné problémy v budoucnu.

Funkce by měla vracet NOVÝ objekt (seznam seznamů) s výsledným stavem hry, který je nezávislý na předaném původním stavu hry. Přesněji, nový stav je odvozený od starého, ale objekty reprezentující starý a nový stav by měly být nezávislé.

Petr Pošík


RE: 2048-3: Krok - jonas.somora@seznam.cz - 11-21-2018

Dobrý den,

děkuji za objasnění, chyba opravena a snad jsem se i poučil...

Jonáš Somora