array øger sin længde af sig selv
Hej eksperterJeg sidder og skal have afleveret et spil i programmeringsfag inden kl. 23:59 i aften...
Jeg har brugt hele dagen på at rette en fejl i linie 0, og den er nu blevet fikset, jeg er imidlertid rendt ind i et nyt problem...
Jeg skal have "slangen" til at bevæge sig og det gør jeg ved at tage et array og lavet et temp array til det, og så vendes temp arrayet om og der trækket fra sidste element i det og det hældes så over i det oprindelige array... problemet er nu at det temp array går fra længden 5 ned til 3 (som det skal), men her slår det klik og begår oprør... længden af arrayet stiger bare....
function Snake() {
// tilføj ved at vende arrayet om og så trække sidste værdi ud
tempS = snake.arrS;
snake.arrS[0] = new Array((snake.arrS[0][0]+snake.movXdir), (snake.arrS[0][1]+snake.movXdir));
var a = 1;
var tmpSLength = tempS.length
var newFruit;
if (arrMap[snake.arrS[0][0]][snake.arrS[0][1]] == 2) { // tjekker for om der er en frugt der hvor slangen kommer hen og bestemmer så om halen på slangen skal dø eller ej
for (a=1;a<=tmpSLength;a++) {
alert(tempS.length);
snake.arrS[a] = tempS.pop();
}
makeFruit();
snake.size++;
}
else {
for (a=1;a<tmpSLength;a++) {
alert("else " + tempS.length);
snake.arrS[a] = tempS.pop();
}
}
if (!GameOver(snake.arrS[0][0], snake.arrS[0][1])) {
updateTabel(tempS, snake.arrS[0]);
}
}
En anden skræmmende ting er at loopet færdiggør sig selv og henter funktionen GameOver (eller den kommer automatisk dertil i sekvensen), og den melder så true (stik mod alle forventninger), og så popper internet explore op med en advarsel om at scriptet vil få siden til at gå ned, eller noget i den stil... og om man vil afslutte scriptet (hvilket jeg siger ja til, da den ellers chrasher)...
Kan nogen hjælpe?
Mvh Carsten
