Hola a tod@s, tengo que implementar el tipico juego de hundir barcos y tengo que hacerlo para el lenguaje C.
Aqui os dejo el codigo:
#include <stdio.h>
int main(){
int barco, casilla, posicion, aciertos, intentos;
int tablero[10];
printf("**********************************\n");
printf("*** Barquitos ***\n");
printf("*** Version 1.1 ***\n");
printf("**********************************\n");
printf("\n\n");
//todos las posiciones en agua
for(casilla=1;casilla<=10;casilla++){
tablero[casilla] = 0;
}
//meter los barcos para jugador numero 1
printf("***** Jugador numero 1 *****\n\n");
printf("introduce las posiciones donde quieres meter los barcos\n\n");
for(barco=1;barco<=5;barco++){
printf("barquito %d: ", barco);
scanf("%d", &posicion);
tablero[posicion]=1;
}
printf("\n");
//turno del jugaror numero 2
printf("***** Jugador numero 2 *****\n\n");
aciertos=0;
intentos=0;
while(aciertos<=5 || intentos <10){
//pintar el tablero
casilla=1;
while(casilla<=10){
if(tablero[casilla]==1 || tablero[casilla]==0){
printf("_ ");
}
if(tablero[casilla]==2){
printf("* ");
}
casilla++;
}
printf("\n\n");
printf("a que posicion del array quieres disparar\n\n");
scanf("%d", &posicion);
if(tablero[posicion]==2){
printf("ya has derribado este barco\n");
intentos++;
}
if(tablero[posicion==1]){
printf("tocado y hundido!!\n");
tablero[posicion]=2;
aciertos++;
intentos++;
}
if(tablero[posicion]==0){
printf("agua\n");
intentos++;
}
}
//fin mientras
//ranking del usuario
if(intentos<=5){
printf(" **********nivel avanzado *******\n");
}
if(intentos<=7 && intentos>5){
printf(" ********* nivel medio **********\n");
}
if(intentos<10 && intentos >7){
printf(" ********* nivel bajo ***********\n");
}
}
//fin programa
El caso es que no me imprime los niveles del final.
Si imprimo el valor 2 me imprime dos asteriscos, uno donde debe ser y otro al final.
Si acierto todos los barcos a la primera no se sale del programa, es decir, no respeta el while(aciertos< 5 || intentos <=9).
Gracias