Avatar billede Slettet bruger
28. december 2010 - 12:51 Der er 2 kommentarer og
1 løsning

Mystisk problem i JS

Hej Alle

Jeg er pt. ved at lave et spil i Javascript, blot som et hyggeprojekt, men er stødt på den mærkeligste fejl.

Jeg har en funktion som skal tælle "bomber" i et område, der ser sådan ud:

function countBombs(n) {
        var cBombs = spilBrikker[n - rows - 1][0];
        cBombs += spilBrikker[n - rows][0];
        cBombs += spilBrikker[n - rows + 1][0];
        cBombs += spilBrikker[n - 1][0];
        cBombs += spilBrikker[1 + n][0];
        cBombs += spilBrikker[n - 1 + rows][0];
        cBombs += spilBrikker[rows + n][0];
        return cBombs;
    }

Funktionen giver mig dog følgende fejl:

"spilBrikker[rows + n] is undefined"

Dette giver dog ingen mening for mig, hvorfor det kun er den sidste der er undefined, når jeg bruger begge værdier tidligere?

Tidligere havde jeg også problemer med:
cBombs += spilBrikker[1 + n][0];

Så prøvede jeg at bytte om på 1 og n altså [1+n] / [n+1], hvorefter det virkede, kan nogle forklare hvorfor dette for mig?

Hilsen Rasmus
Avatar billede tjens Nybegynder
28. december 2010 - 22:25 #1
Jeg gætter på at rows+n er et højere tal end spilBrikker[] er lang.

Hvor mange spilBrikker har du initieret fra starten?

Når du adresserer hele vejen rundt om en koordinat, uden at checke om det f.eks.  er sidste linie, skal du have en tom række spilBrikker hele vejen rundt om den synlige del af spillepladen.
Avatar billede Slettet bruger
27. januar 2011 - 08:32 #2
Problemet bestod i, at jeg åbenbart forsøgte at addere end streng med en int, så 1+1 = 11 - så er det jo dømt til at gå galt.

Så i princippet havde du ret, du får point.
Avatar billede tjens Nybegynder
27. januar 2011 - 14:07 #3
OK. Hermed svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester