Allora ragazzi io ho risolto (in parte) così:
Funziona , tranne in un solo caso, cioè se tipo mi trovocodice:int foo(int x1,int y1, int x2, int y2, int l) { int ulx, lrx; int uly, lry; int flag=0; // bisogna prenderle in modulo poichè l'universo è toroidale ulx=(x1-2+l) % l; lrx=(x1+2) % l; uly=(y1-2+l) % l; lry=(y1+2) % l; if ( (ulx <= x2 && x2 <= lrx) && (uly <= y2 && y2 <= lry)) flag=1; return flag; }
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,2,0,0,0,0,0,1
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0
Se il centro è dove stà il 2(x1,y1) e 1(x2,y2) invece indica la coordinata del punto che invade l'area, in questo caso non va bene perchè calcolando ulx , questo è uguale a 7 e fa:
if (7 <= 7 && 7 <= 3) && ( 1<=3 && 3 <= 5) , dovrebbe andare bene ma nella prima condizione fa 7<= 3 e sballa.

Rispondi quotando