Guerra de barques P66055


Statement
 

pdf   zip

html

Feu un programa que simuli una partida d’un joc similar a la “guerra de barques”. Aquí, un dels jugadors té diverses barques horizontals i verticals en una tauler rectangular f × c, i l’objectiu de l’oponent és enfonsar-les totes amb el mínim nombre de tirades.

Entrada

L’entrada consisteix en f i c, seguides de f files amb c caràcters cadascuna. Una ‘X’ indica una posició ocupada, i un punt una posició lliure. Segueixen diversos parells x y indicant cada tirada (fila i columna). Podeu suposar que f i c estan entre 1 i 500, 1 ≤ xf, 1 ≤ yc, que almenys hi ha una barca, que totes les barques ocupen almenys dues caselles, i que les barques no es toquen entre si més que diagonalment.

Sortida

Per a cada tirada, escriviu si és aigua o si la barca és tocada i, en aquest cas, si és enfonsada. El programa ha d’acabar quan s’enfonsen totes les barques, quan es repeteix alguna jugada, o si no queden més tirades, amb el missatge corresponent.

Public test cases
  • Input

    3 5
    XXXX.
    ....X
    ....X
    1 2  2 5  3 5  3 1  1 4  1 3  1 1  3 2
    

    Output

    1 2: tocada
    2 5: tocada
    3 5: tocada i enfonsada
    3 1: aigua
    1 4: tocada
    1 3: tocada
    1 1: tocada i enfonsada
    VICTORIA
    
  • Input

    2 5
    ....X
    XX..X
    2 1  1 4  2 1  1 1
    

    Output

    2 1: tocada
    1 4: aigua
    2 1: REPETIDA
    
  • Input

    1 8
    .XXXX...
    1 6
    

    Output

    1 6: aigua
    INACABADA
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++