Hundir la flota P30646


Statement
 

pdf   zip

html

Haz un programa para jugar al “hundir la flota”. La partida se juega en una cuadrícula 10 por 10, donde las columnas están numeradas del 0 al 9, y las filas de la ‘A’ a la ‘J’. En este tablero se disponen, horizontal o verticalmente, 1 portaaviones (5 casillas), 2 acoradazados (4 casillas), 3 destructores (3 casillas) y 2 submarinos (2 casillas), sin superponerse, pero pudiéndose tocar.

Durante el juego se realizan ataques sobre las casillas, marcando agua o tocado en función de si hay o no hay un barco en la casilla atacada. El contenido de las casillas permanece oculto hasta que son atacadas.

Escribe un programa que, a partir de la posición inicial de los barcos, y los ataques efectuados sobre las casillas, muestre el estado del tablero.

Entrada

La entrada empieza con cuatro líneas, cada una de las cuales contiene las posiciones de los distintos barcos de cada tipo. Las posiciones se dan con tres caracteres: la fila (‘A’-‘J’) y la columna (0-9) de la casilla del barco más cercana a la casilla superior izquierda ‘A0’ del tablero, y las letras ‘h’ o ‘v’ en función de si el barco se situa horizontal o verticalmente.

A continuación, una cantidad arbitraria de líneas (pero no más de 100), cada una de las cuales entre 1 y 10 posiciones de casillas a atacar. Toda línea contendrá al menos una posición.

Se te asegura que todos los barcos estan bien situados (no se tocan, están dentro del tablero) y que todas las casillas atacadas pertenecen al tablero.

Salida

Escribe, para cada línea con ataques, la situación del tablero después de haberse atacado en las casillas indicadas, en el formato de los ejemplos (‘.’ es desconocido, ‘=’ es agua, y ‘X’ es tocado). Escribe una línea con once guiones después de cada tablero que muestres por pantalla.

Public test cases
  • Input

    A0h
    C0h C5h
    A9v H9v G5h
    A6h I3h
    A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
    C1 C2 C3 C4 C5 D3 G4 G8 F5
    J9 G2 G3 C4 D2 I0 H8 I2 I6 I5
    

    Output

     0123456789
    AXXXXX=XX=X
    B..........
    C..........
    D..........
    E..........
    F..........
    G..........
    H..........
    I..........
    J..........
    -----------
     0123456789
    AXXXXX=XX=X
    B..........
    C.XXX=X....
    D...=......
    E..........
    F.....=....
    G....=...=.
    H..........
    I..........
    J..........
    -----------
     0123456789
    AXXXXX=XX=X
    B..........
    C.XXX=X....
    D..==......
    E..........
    F.....=....
    G..===...=.
    H........=.
    I=.=..==...
    J.........X
    -----------
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++