2016-04-23 2 views

Répondre

2

Vous pouvez utiliser un tableau multidimensionnel (un tableau de tableaux).

var gridWidth = 10; 
var gridHeight = 10; 
var grid = []; 
for(var y = 0; y < gridHeight; y++) 
{ 
    grid.push([]); 
    for(var x = 0; x < gridWidth; x++) 
    { 
     grid[y].push(0); 
    } 
} 

Vous avez maintenant une grille de 10x10, que vous pouvez accéder via réseau [x] [y]

Représentant ceci sur la page, en HTML, dépend du cadre que vous utilisez. Si vous voulez le faire avec javascript brut, vous pourriez peut-être sortir une table.

document.write('<table>'); 
var gridWidth = 10; 
var gridHeight = 10; 
var grid = []; 
for(var y = 0; y < gridHeight; y++) 
{ 
    document.write('<tr>'); 
    grid.push([]); 
    for(var x = 0; x < gridWidth; x++) 
    { 
     document.write('<td onclick="alert(\'clicked\');">'); 
     grid[y].push(0); 
     document.write('</td>'); 
    } 
    document.write('</tr>'); 
} 
document.write('</table>'); 
+0

C'est exactement ce que je cherche. Y at-il quelque chose de particulier que je dois faire dans le HTML? J'utilise Chrome, cela ne devrait donc pas poser de problème. – Mkz

+0

Eh bien, évidemment, vous devrez ajouter toute votre logique de jeu. StackOverflow ne l'écrira pas pour vous, mais si vous êtes bloqué, n'hésitez pas à demander :) –

+0

Merci! Je veux dire en plus de la structure html de base, ai-je besoin d'avoir une table déjà écrite dans le HTML? – Mkz

1

Cela vous donnera quelques événements de clic, rapportant la colonne et la ligne.

css:

td { 
    border: black solid 1px; 
} 

html:

<table class="table"></table> 

javascript:

$('.table').on('click', 'td', function() { 
    console.log($(this).attr('data-row')); 
    console.log($(this).attr('data-column')); 
}) 

var columns = 10, rows = 10 

function createGrid(columns, rows) { 
    var table = $('.table'); 

    for (var i = 0; i < rows; i++) { 
     var row = $('<tr>'); 
     table.append(row) 
     for (var j = 0; j < columns; j++) { 
      var cell = $('<td>') 
      cell.attr('data-row', i); 
      cell.attr('data-column', j) 
      row.append(cell); 
     } 
    } 
} 
createGrid(columns, rows);