Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2013, 04:24
Avatar de alejandcc
alejandcc
 
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 1
juego barquitos en C

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