2013-04-23 6 views
5

Im edificio gioco di vita di John Conways con tela HTML5. Ha un oggetto gameOfLife che contiene un array con tutte le celle e i loro stati (morto/vivo). Ecco il codice che costruisce una cella:Non riesco a aggiungere due interi in javascript?

function cell(x,y){ 
    this.x = x; 
    this.y = y; 
    this.isAlive = false; 
} 

sto esplorando modi di controllo di una cellule circostanti cellule Stati. Come ho capito, un modo è quello di scorrere l'array e trovare una cella con le coordinate che corrispondono alla cella attualmente selezionata.

Stavo pensando di andare in un modo diverso. Aggiungendo e sottraendo il numero di celle (con piccole variazioni di +1 e -1) sull'asse Y (e X) dall'indice della cella che viene valutata, dovresti riuscire a trovare l'indice di qualsiasi sinistra, sinistra, in basso a sinistra, in alto a destra, a destra, in basso a destra.

non sono stato in grado di testare questa idea, però, in quanto non mi permetta di ottenere l'indice desiderato:

Quindi, a mio aggiornamento dell'anello:

//I know that there is a cell at the index of exampleIndex + cellsY 
exampleIndex = 200; 

game.getLivingNeighbours(exampleIndex); 


function getLivingNeighbours(i){ 

    console.log(i) //Logs an integer 
    console.log(grid.cellsY) //Logs an integer 
    console.log(game.cells[i + grid.cellsY]); //Undefined?! 

} 
+0

quale è? 'cellsX' o' cellsY'? – Joseph

+0

Si sta tentando di aggiungere 'i' e' cellsY'. Stai verificando se 'cellsX' è un intero, ma non controlli mai' cellsY' –

+0

cellsY, molto dispiaciuto. – styke

risposta

5

non ci può essere due ragioni:

  1. In variabili JavaScript sono di loose-tipo è per questo che la sua buona per analizzare int prima operazione aritmetica.

    prova:

    console.log(game.cells[parseInt(i,10) + parseInt(grid.cellsY,10)]); 
    
  2. Si sta tentando di accedere ad un array, è necessario verificare se parseInt(i,10) + parseInt(grid.cellsY,10) indice esiste nella array o meno.

+1

Probabilmente è un errore di battitura o un problema di parole ma non riesco a capire cosa intendi con "In javascript non è una variabile di default di un int". Un tipo di variabile JavaScript è quello di qualsiasi cosa tu assegni ad esso. –

+2

Le variabili JavaScript non sono state affatto digitate.E poiché '+' è usato sia per aggiungere numeri che per concatenare stringhe, è una buona idea convertire esplicitamente le possibili stringhe in numeri prima di eseguire l'aggiunta. – Blazemonger

+0

grazie amici ... Post aggiornato :) –