Une autre façon serait d'avoir 2 boolean
matrices nommées Hor
et Ver
pour suivre la possibilité de déplacement horizontal et vertical, respectivement.
Hor Matrix
: Dimension: 6x9
[X,YZ]
représente la possibilité d'un mouvement horizontal [X,Y]
-[X,Z]
sur la carte réelle.
-1
représente la limite
exemple: [A,01]
est true
et est donc [F,-10]
. Mais [B,23]
est false
.
-10 01 12 23 34 45 56 67 7-1
A
B
C
D
E
F
De même
Ver Matrix
: Dimension: 7x8
[XY,Z]
représente la possibilité d'un mouvement vertical de [X,Z]
à [Y,Z]
sur le bord réel.
Capital o
dans la ligne représentent la limite.
exemple: [DE,0]
est true
et [BC,7]
. Mais [CD,0]
est false
.
0 1 2 3 4 5 6 7
OA
AB
BC
CD
DE
EF
FO
Ok, merci beaucoup. Pensez-vous qu'il vaudra mieux utiliser la liste d'adjacence dans ce cas. Cuz 48x48 semble un peu redondant (image miroir) et inefficace. – Carlos
Et cette matrice, par sa nature, est symétrique, de sorte que toute manipulation (et stockage, bien sûr) peut être effectuée sur l'une des moitiés seulement. – ysap
Le degré de chaque sommet est d'au plus 4, donc la liste d'adjacence serait beaucoup plus efficace. – polygenelubricants