Foros del Web » Programación para mayores de 30 ;) » Programación General »

Juego Hundir la Flota en Turbo Pascal

Estas en el tema de Juego Hundir la Flota en Turbo Pascal en el foro de Programación General en Foros del Web. Hola a tod@s. Me gustaría que alguien me ayudara para realizar el juego de Hundir la Flota en Turbo Pascal. Si alguien lo tiene ya ...
  #1 (permalink)  
Antiguo 09/01/2004, 07:27
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 3 meses
Puntos: 0
Juego Hundir la Flota en Turbo Pascal

Hola a tod@s. Me gustaría que alguien me ayudara para realizar el juego de Hundir la Flota en Turbo Pascal. Si alguien lo tiene ya realizado que m lo envie si es tan amable a mi correo por es urgente :(, si alguien está interesado en ayudarme, que m escriba a este correo: [email protected]

Muchas gracias.
  #2 (permalink)  
Antiguo 09/01/2004, 17:08
 
Fecha de Ingreso: enero-2004
Mensajes: 13
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola,

¿Estudiante, eh? jeje

Bueno, yo no lo tengo en Pascal, tengo hecho uno en C++ de mis tiempod de estudiante, pero no es gran cosa, mejor que no te fijes en él.

¿Cuales son los presupuestos a cumplir? ¿Hombre contra hombre? ¿Hombre contra máquina? ¿Máquina contra máquina? ¿Entorno gráfico o de texto?

Yo si quieres te echo una mano con las dudas que te surjan, plantealas y veremos que se puede hacer.

En todo caso, te planteo un poco la base.

Debes crear dos matrices bidimensionales con una anchura y altura correspondientes al tamaño del tablero.

Luego hay que colocar los barquitos.

Si el jugador es humano es simple, él los coloca y tu compruebas si estan bien colocados. Si lo haces en modo texto el usuario deberia entrar las coordenadas donde coloca el barquito y la dirección del mismo. Luego rellenas tu array (te aconsejo de enteros) con un número correspondiente al tamaño del barco, por ejemplo, si el barco ocupa cuantro espacios, se coloca en la coordenada (1,2) y va dirección a la derecha, pones en tu array un cuatro en las posiciones {(1,2), (1,3), (1,4), (1,5)}. Podrias hacerlo en un array booleano, pero hacerlo así simplificará tu tarea a la hora de comprobar si el barco está hundido o solo tocado.

Si el jugador es máquina ya es más complicado. La forma más sencilla es hacerlo aleatoriamente. Buscas dos numero entre 1 y el numero máximo de casillas y un numero entre 1 y 4 para determinar la dirección. Miras si alguna de esas casillas (y las de alrededor, si en tus reglas no se permite que los barcos se toquen) esta ocupada. Si es así repites la operación, si no pasas a colocar el siguiente barco.

Luego, debes implementar el juego.

Haces un while que termine cuando alguien tenga todos los barcos hundidos. Si juega un hombre, solo debes ver si las coordenadas que el entra se corresponden en tu matriz a un numero diferente a cero (cero o el número con el que inicialices la matriz). Si corresponde a cero, es AGUA, si no pones en ese lugar del array un cero y recorres el array en busca del mismo número que habia en esa celda. Si existe en alguna otra celda es TOCADO, si no es TOCADO Y HUNDIDO. Al recorrer el array debes mirar tambien si todos las celdas contienen un cero, en ese caso se ha hundido el ultimo barco, por lo que la partida finaliza.

Si el que juega es la máquina, la forma más simple es aleatoriamente. Buscas un punto aleatorio dentro del array y compruebas lo que hay. Si lo que hay es un cero, AGUA, y vuelves a buscar aleatoriamente en el siguiente turno. Si no haces lo mismo que en el caso del hombre con la diferencia de que si es TOCADO, pero no hundido, debes recordar esa posición para seguir buscando el resto del barco en el siguiente turno. Es decir, pongamos que en la posicion (3,4) la máquina ha tocado. Entonces buscas una dirección aleatoriamente y sumas uno en esa dirección. Si la direccion fuese norte tiras en el (3,3) en busca del barco. Si no hay barco allí busca solo las tres direcciones restantes en el siguiente turno. Si lo hay, sabes que el barco es vertical, así que en el siguiente turno solo barajas dos direcciones. A la que encuentres agua en una de esas dos direcciones, ya sabes que el barco está en la otra, puesto que el TOCADO Y HUNDIDO es cuestion de turnos.

Bueno, ya sabes por donde empezar, cómete el coco un poco.

Saludos
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:30.