Aggiungo:
Riguardo al calcolo degli indici in una matrice toroidale, il problema non c'è se sono sulla prima colonna o ultima colonna dove calcolo in questo modo il prossimo indice:
NewY=((y-1)+NColonne) % NColonne,
esempio:
in una matrice 3x3:
111
111
q11
sono nella prima colonna (2,0) , l'elemento che si trova sulla sua sinistra è: (2,2) quindi:
NewY=((0-1)+3) % 3 = 2 % 3 = 2 quindi va bene, analogamente se mi trovo nell'ultima colonna
(0,2)
NewY=((y+1) % NColonne)=((2+1) % 3) = 3 % 3 = 0
Il problema sorge se sono nella prima riga o ultima riga, se uso la stessa formula ho:
esempio sono in (0, 1) , l'elemento in alto dovrebbe essere (2,1) quindi:
NewX = ( (x-1) % NRighe ) = (2-1) % 3 = 1 % 3 = 1 e non va bene, mentre la formula va benissimo se tipo non mi trovo nella prima.

Rispondi quotando