
BARCOS BUBLES URGENTE
Publicado por Maria (2 intervenciones) el 03/11/2022 22:21:03
Tenemos en la entrada datos de una serie de barcos para el juego de los barcos. Los barcos se colocan horizontalmente o verticalmente en un tablero. El tablero numera las columnas con letras, A, B, C, ... y las filas con números, 1, 2, 3, ...
Un barco puede ser
Submarino, de longitud 1.
Dragaminas, de longitud 2.
Fragata de longitud 3.
PortaAviones, de longitud 4.
Además, cada barco tiene información relativa al juego, que incluye
La posición de la proa (arriba para barcos verticales, a la izquierda para barcos horizontales).
El color, que puede ser Rojo, Verde o Azul.
Si está Tocado, Hundido o Intacto. (durante el juego se hacen disparos, pero no en este ejercicio).
Disponemos en la entrada estándar de un número que indica el número de filas, un número que indica el número de columnas, y datos de barcos, terminados con la palabra FIN. Para cada barco tenemos su tipo, orientación, columna y fila de la proa, color, y estado del barco (tocado, etc.). Todo ello, escrito con un sólo valor por línea.
Se quiere un programa en pascal que, leyendo estos datos de la entrada, haga lo siguiente:
Escriba cuántos barcos hay en total
Escriba cuántos barcos hundidos hay en total
Dibuje al finalizar el tablero, mostrando en el tablero la posición de la proa del barco de mayor tamaño.
Pistas:
El procedimiento leerbarco debería tener dos parámetros, uno el barco y otro un boolean que indique si tras la llamada a leerbarco hemos encontrado FIN en lugar de un barco.
Para leer la clase de barco o el FIN se sugiere un enumerado que tenga las clases de barco y FIN, y luego la clase de barco será un subrango de dicho tipo.
Es útil mantener un TipoJuego con la información que necesitamos sobre el mismo, incluyendo el número de barcos, el número de hundidos, el mayor barco, etc.
Para esta entrada:
5
10
FIN
La salida ha de ser esta:
0 barcos
0 hundidos
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Para esta entrada:
5
10
Submarino
Horizontal
B
2
Rojo
Tocado
Fragata
Vertical
C
3
Verde
Hundido
FIN
La salida ha de ser esta:
2 barcos
1 hundidos
. . . . . . . . . .
. . . . . . . . . .
. . P . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Un barco puede ser
Submarino, de longitud 1.
Dragaminas, de longitud 2.
Fragata de longitud 3.
PortaAviones, de longitud 4.
Además, cada barco tiene información relativa al juego, que incluye
La posición de la proa (arriba para barcos verticales, a la izquierda para barcos horizontales).
El color, que puede ser Rojo, Verde o Azul.
Si está Tocado, Hundido o Intacto. (durante el juego se hacen disparos, pero no en este ejercicio).
Disponemos en la entrada estándar de un número que indica el número de filas, un número que indica el número de columnas, y datos de barcos, terminados con la palabra FIN. Para cada barco tenemos su tipo, orientación, columna y fila de la proa, color, y estado del barco (tocado, etc.). Todo ello, escrito con un sólo valor por línea.
Se quiere un programa en pascal que, leyendo estos datos de la entrada, haga lo siguiente:
Escriba cuántos barcos hay en total
Escriba cuántos barcos hundidos hay en total
Dibuje al finalizar el tablero, mostrando en el tablero la posición de la proa del barco de mayor tamaño.
Pistas:
El procedimiento leerbarco debería tener dos parámetros, uno el barco y otro un boolean que indique si tras la llamada a leerbarco hemos encontrado FIN en lugar de un barco.
Para leer la clase de barco o el FIN se sugiere un enumerado que tenga las clases de barco y FIN, y luego la clase de barco será un subrango de dicho tipo.
Es útil mantener un TipoJuego con la información que necesitamos sobre el mismo, incluyendo el número de barcos, el número de hundidos, el mayor barco, etc.
Para esta entrada:
5
10
FIN
La salida ha de ser esta:
0 barcos
0 hundidos
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Para esta entrada:
5
10
Submarino
Horizontal
B
2
Rojo
Tocado
Fragata
Vertical
C
3
Verde
Hundido
FIN
La salida ha de ser esta:
2 barcos
1 hundidos
. . . . . . . . . .
. . . . . . . . . .
. . P . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Valora esta pregunta


0