Ako su ti tacke na u ravni X,Y gde X i Y idu od 1 do 100, samo celi brojevi, onda imas 100 X 100 tacaka. Neke od njih su "u bazi".
Mozes da probas ovo: Ako napravis tabelu sa SVIM MOGUCIM parovima koordinata, dakle 100 X 100 = 10,000 tacaka i dodas jos jednu kolonu "Zauzeta", koja je 1 ako je tacka zauzeta ("tacka je u bazi") ili 0 ako je tacka slobodna, onda celu pricu mozes da nacrtas u koordinatnom sistemu.
Ako izaberes bilo koju zauzetu tacku, sa koordinatama (X,Y), ona ce biti u centru nekog kvadrata. Njeni najblizi susedi su tacke na sredinama stranica kvadrata i imace koordinate:
sused levo (x-1, y)
sused desno (x+1, y)
sused gore (x, y+1)
sused dole (x, y-1)
Bilo koja od ovih tacaka je podjednako daleko od izabrane tacke (opet RANDOM
Malo dalje od prethodnih su tacke na temenima kvadrata:
severozapadni sused (x-1,y+1)
severoistocni sused (x+1,y+1)
jugoistocni sused (x+1,y-1)
jugozapadni sused (x-1,y-1)
Ako izaberes bilo koju tacku (evo ga Random) koja je Zauzeta, onda vidis koordinate njenih suseda, i tu trazis prvu slobodnu tacku. Blizih od ovoga nema. Ako ni jedan sused nije slobodna tacka, ides na sledeci kvadrat. Ovaj algoritam ti garantuje da ces izabrati tacku koja je najbliza moguca posmatranoj tacki. Moze psotojati vise od jedne tacke koje su na istoj udaljenosti od posmatrane tacke.
Mislim da sam video knjige u kojim se slicni problemi resavaju cistim SELECT naredbama, bez petlji. Ako nadjem, pokazacu takvo resenje.