Foros del Web » Programación para mayores de 30 ;) » C/C++ »

juego barquitos en C

Estas en el tema de juego barquitos en C en el foro de C/C++ en Foros del Web. 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: ...
  #1 (permalink)  
Antiguo 09/11/2013, 04:24
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 4 meses
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
  #2 (permalink)  
Antiguo 09/11/2013, 06:57
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: juego barquitos en C

Creo que tendrias que cambiar la condicion del while y poner un AND en lugar de un OR, diria que para continuar en el bucle buscas que se cumplan las DOS condiciones, no?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 09/11/2013, 08:45
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: juego barquitos en C

Si, ahora ya parece que sale del while, pero queda lo del asterisco que se repite cuando disparo 2.

Etiquetas: int, juego, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:01.