Provo a rispiegarlo. Questo è il codice, serve a ricevere le coordinate in cui il giocatore decide di colpire e a controllare se sono accettabili (le coordinate vanno da A a J e da 1 a 10):
do{
/**prima parte**/
v=1;
GotoXY(0,14);
printf("E' il tuo turno!\n\nInserisci la prima coordinata (lettera): \nInserisci la seconda coordinata (numero): ");
GotoXY(55,14);
printf("Legenda:");
GotoXY(55,15);
printf("%c acqua",c=onda);
GotoXY(55,16);
printf("%c nave",c=nave);
GotoXY(55,17);
printf("%c mancato",c=manc);
GotoXY(55,18);
printf("%c colpito",c=navec);
GotoXY(55,19);
printf("%c affondato",c=navea);
GotoXY(41,16);
/**seconda parte**/
scanf("%c",&c1);
if(c1=='A'||c1=='a'){
l=1;
}
else if(c1=='B'||c1=='b'){
l=2;
}
else if(c1=='C'||c1=='c'){
l=3;
}
else if(c1=='D'||c1=='d'){
l=4;
}
else if(c1=='E'||c1=='e'){
l=5;
}
else if(c1=='F'||c1=='f'){
l=6;
}
else if(c1=='G'||c1=='g'){
l=7;
}
else if(c1=='H'||c1=='h'){
l=8;
}
else if(c1=='I'||c1=='i'){
l=9;
}
else if(c1=='J'||c1=='j'){
l=10;
}
else{
v=0;
}
GotoXY(42,17);
scanf("%i",&n);
if(n<1||n>10){
v=0;
}
if(v==0){
GotoXY(0,19);
printf("Errore!");
}
}while(v==0);
Quando faccio partire il programma viene eseguita la prima parte del codice ed ottengo questo risultato (il cursore si trova di fianco alla dicitura "prima coordinata"):
A questo punto inserisco la prima coordinata, quella letterale, e ne inserisco una valida per esempio "E" e do l'invio:
Il cursore ora si trova vicino alla dicitura "seconda coordinata". Inserisco quindi la coordinata numerica mettendone una non valida( "11"):
Quando do l'invio compare correttamente il messaggio di ERRORE in basso e così finisce anche la seconda parte di codice:
A questo punto il ciclo riparte e dovrebbe rieseguire tutte le istruzioni sopraelencate portando quindi il cursore di fianco alla dicitura "prima coordinata" ed invece, come si può notare dall'ultima immagine, il cursore si trova una riga più in basso. E da li tutte le volte che digito invio il cursone torna sempre in quel punto anziché rieseguire il ciclo in modo identico. Non riesco proprio a capire perché.