Chiamare le tre macchinine "X" non è una buona idea XD, almeno direi un "X" "Y" "Z".
Vuol dire tipo questo
Hai trovato facendo la funzione randomica che n=5. Hai un array 5*7 e sei alla posizione 3,0. Se incrementassi semplicemente la x (il 3) di 5 caselle arriveresti alla 8,0 che chiaramente nel tuo array non esiste. Quindi dovresti fare una roba del tipo
codice:
if(caselle+x<=limite) /*dove x è la posizione in cui sei e limite è la lunghezza dell'array e caselle è di quanto devi spostarti*/
Stessa cosa per il conteggio verticale.
(chiaramente deve verificare la condizione solo se vuole muoversi orizzontalmente o verticalmente)
Se questi due if non sono soddisfatti dovresti fare una roba del tipo
codice:
while(caselle>0)
{
if(x+1<=limite) x++;
else y++;
}
stessa cosa per il verticale