Igen, az elején megtanultam, és igen, azt hittem, hogy a gyakorlati világban nem lesz haszna. És fiú tévedtem…
A probléma: Egy szám megváltoztatása egy tömbben más tömböket is megváltoztat
Tehát a cím alapján valószínűleg sejtheti, hogy mi a probléma, de eltartott egy ideig, amíg rájöttem, hogy mi a baj…
Úgy döntöttem, hogy létrehozok egy tömböt a vászonrács ábrázolására.
ex. [[0,0,0,0],[0,0,0,0],[0,0,0,0]]
Így volt 25 tömböm (sorom) és mindegyikben 40 nullám (40 oszlop), amit természetesen nem fogok kézzel kiírni, ezért csináltam egy függvényt.
A tömb, ami a rendetlenséget okozta…
var nullák = [];
töltse ki azt a tömböt 40 nullával.
Ezután használja ezt a tömböt (nullákat) a 25 sor kitöltéséhez…
Ennyit akartam csinálni… Egyszerű…
Nem vettem észre a hibát, így amikor ezt megláttam, összezavarodtam, és elég sok időt töltöttem azzal, hogy megtaláljam a tettest… A renderelési függvény volt, vagy az alakzatok nem generáltak megfelelően, vagy sok más okból…
Lehet, hogy az alakzat olyan gyorsan haladt, hogy csak egy állandó nyomot hagyott a képernyőn…
Mi voltam valójában…
a nullák tömbje valójában valahogy így néz ki:
zeros = #00052e152, ami csak egy cím…
egy cím, ahol megtalálhatjuk a tömbünket…
Tehát a vászon rácstömböm valószínűleg így nézett ki:
[ #00052e152, #00052e152, #00052e152, #00052e152]
Tehát amikor megváltoztattam a canvasGrid[0][2]-ot valamilyen számra..
[0,0,5,0,0,0,0]
Úgy tűnt, az összes „más” tömb is megváltozott…
Ezért a vastag színes vonal a képernyőn…
Tehát ez egy újabb tanulság. Remélhetőleg legközelebb elkapom, amikor kódolok, ahelyett, hogy valami olyasmit üldöznék, ami könnyen elkerülhető lett volna.