Hry, Algoritmy, Programy a jiné hrátKY

Úplná verze: 2048-3: Krok
Prohlížíte si holou variantu vašeho obsahu. Prohlédněte si plnou verzi s příslušným formátováním.

jonas.somora@seznam.cz

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ěď.
(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

jonas.somora@seznam.cz

Dobrý den,

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

Jonáš Somora