Petite variante pour afficher une matrice de déplacement qui n'autorise pas les diagonales :
Code PHP :
<?php
<script language="javascript">
selectArea(idUnit, mUnit, pUnit, mapLength){}
// On repère ligne la plus haute correspondant à la case traitée
var cRow = pUnit - ((mapLength)*mUnit);
// Boucle sur les ligne
for(var x=-mUnit;x<=mUnit;x++){
//Boucle sur les colonnes
for(var y=-mUnit;y<=mUnit;y++){
//La case est elle à portée ?
if(Math.abs(x)+Math.abs(y)<=mUnit){
//Recup de l'Id à traiter
var cId = cRow+y;
//on vérifie les débordements droite/gauche
if(parseInt(cId/mapLength)==parseInt(cRow/mapLength)){
//Coloriage de la case incluant le test d'existence pour le débordement haut bas
if(loc=document.getElementById(cId)) loc.style.backgroundColor='red';
}
}
}
// Ligne suivante
cRow+=mapLength;
}
}
</script>