O poziţie în matrice este identificată prin linia şi coloana pe care se află:

struct Pozitie {int lin, col};

La un pas şoricelul se poate deplasa în una dintre următoarele NrDir=4 direcţii: Nord, Est, Sud, Vest.

Pentru a parcurge cu uşurinţă vecinii poziţiei curente p utilizăm doi vectori de deplasare dl (deplasarea pe linie) şi dc (deplasarea pe coloană) în care reţinem deplasarea relativă pentru fiecare dintre vecini.

Pentru parcurgerea vecinilor, parcurgem cele NrDir direcţii:

for (k=0; k<NrDir; k++) …

Al k-lea vecin al poziţiei curente va fi: L[p.lin+dl[k]][p.col+dc[k]]

Considerând că la un pas şoricelul s-ar putea deplasa în una dintre cele 8 direcţii vecine (ca în figură), completează vectorii de deplasare dl şi dc corespunzători, respectând ordinea direcţiilor.