campo minado
¸˜ `
¸˜
IME-USP – Primeiro Semestre de 2003
Terceiro Exerc´cio Programa (EP3) ı Campo Minado
Divulgacao do enunciado: 3/6/2003
¸˜
Prazo de entrega: 27/6/2003
1
Introducao
¸˜
´
Um jogo de estrat´ gia muito popular e o Campo Minado (Minesweeper). Ele possui diversas e ´ implementacoes, inclusive uma muito famosa que e distribu´da com o Windows. Neste EP, o ob¸˜ ı ´ jetivo e criar a nossa pr´ pria implementacao, construindo um “tabuleiro” para o jogo, assim como o ¸˜
“jogadores” autom´ ticos ou n˜ o. a a
Antes de comecar o EP, jogue umas partidas na sua implementacao favorita para entender bem as
¸
¸˜ regras descritas a seguir.
2
Campo Minado
O jogo consiste de um tabuleiro quadriculado, representado por uma matriz (n × m), e de k minas que est˜ o escondidas em posicoes aleat´ rias do tabuleiro. Apenas um jogador participa do jogo. a ¸˜ o Inicialmente, o jogador n˜ o tem nenhuma informacao sobre a localizacao dessas minas, exceto a ¸˜
¸˜
que cada posicao do tabuleiro pode conter no m´ ximo uma mina.
¸˜
a
Cabe ao jogador descobrir a localizacao das minas no tabuleiro. Para isso, em cada jogada, ele
¸˜
escolhe uma posicao v´ lida do tabuleiro para ser revelada. Com relacao a essa escolha, existem duas
¸˜ a
¸˜
possibilidades.
1. A posicao cont´ m uma mina. Neste caso, o jogador perde o jogo e o tabuleiro mostra a posicao
¸˜
e
¸˜
de todas as minas.
2. A posicao n˜ o cont´ m uma mina. Neste caso, o tabuleiro deve revelar a posicao escolhida pelo
¸˜ a e ¸˜ jogador. A revelacao e feita pelo seguinte procedimento.
¸˜ ´
´
• A posicao revelada e rotulada com o n´ mero de minhas presentes nas oito posicoes adja¸˜ u ¸˜
´
centes a ela. Isto e, o jogador passa a enxergar esse n´ mero na posicao revelada. u ¸˜
`
´
• Se esse n´ mero for zero, toda posicao adjacente a posicao revelada e tamb´ m revelau
¸˜
¸˜ e da usando-se este mesmo procedimento. Note que, com