Trabalho Pr ́atico 1 - Campo Minado
Campo Minado ́e um jogo popular inventado em 1986 por Phil Spencer1. O jogo ́e single
player, ou seja, apenas um ́unico jogador pode jogar por partida. O jogo consiste em
um espa ̧co retangular que possui v ́arios quadrados, como mostrado na Figura 1. Cada
quadrado come ̧ca encoberto no in ́ıcio do jogo, mas pode ser revelado atrav ́es dos cliques
feitos durante a partida. Os quadrados por sua vez podem ter ou n ̃ao uma mina, e caso
um quadrado com mina seja revelado, o jogo ́e finalizado indicando que o jogador perdeu.
Para vencer a partida ́e necess ́ario que todos os quadrados sem minas sejam revelados
Universidade Federal de Minas Gerais
Departamento de Ciˆencia da Computac ̧ ̃ao
Programac ̧ ̃ao e Desenvolvimento de Software I
1o Semestre de 2020
Trabalho Pr ́atico 1 - Campo Minado
Campo Minado ́e um jogo popular inventado em 1986 por Phil Spencer1. O jogo ́e single
player, ou seja, apenas um ́unico jogador pode jogar por partida. O jogo consiste em
um espa ̧co retangular que possui v ́arios quadrados, como mostrado na Figura 1. Cada
quadrado come ̧ca encoberto no in ́ıcio do jogo, mas pode ser revelado atrav ́es dos cliques
feitos durante a partida. Os quadrados por sua vez podem ter ou n ̃ao uma mina, e caso
um quadrado com mina seja revelado, o jogo ́e finalizado indicando que o jogador perdeu.
Para vencer a partida ́e necess ́ario que todos os quadrados sem minas sejam revelados.
Figura 1: Tabuleiro do jogo.
O trabalho pr ́atico consiste na implementa ̧c ̃ao desse jogo, que possui trˆes regras principais:
1. Caso um quadrado com mina seja revelado, o jogador perde.
2. Caso um quadrado j ́a revelado seja acionado, nada ́e feito.
3. Caso um quadrado sem mina seja revelado, o jogador continua jogando. Al ́em disso,
todos os quadrados adjacentes ao quadrado acionado s ̃ao revelados automaticamente
se e somente se todos os quadrados adjacentes n ̃ao possu ́ırem minas. Na Figura 1,
ao clicar na posi ̧c ̃ao (7,7), os quadrados na posi ̧c ̃ao (7,6), (6,7) e (6,6) s ̃ao revelados
automaticamente porque n ̃ao possuem minas. Para o jogo proposto neste trabalho,
somente os adjacentes ser ̃ao revelados, n ̃ao sendo necess ́ario que os vizinhos dos
adjacentes tamb ́em sejam revelados caso n ̃ao possuam minas.
O programa inicialmente deve ler as entradas contendo informa ̧c ̃oes sobre o jogo e detalhes
de cada jogada do jogador e imprimir um resultado na sa ́ıda que indica se o jogador perdeu,
ganhou ou n ̃ao terminou o jogo.
Entrada: A entrada possui v ́arias linhas, onde cada linha tem detalhes sobre o jogo
• A primeira linha possui a quantidade de jogos realizados por um jogador (1 ≤ 10);
• A segunda linha indica o tamanho do tabuleiro, que sempre ́e uma matriz quadrada
(2 ≤ 100);
• As linhas em seguida representam o conte ́udo do tabuleiro, onde os valores s ̃ao
separados por um espa ̧co em branco. O valor (b) representa uma mina e (x) indica
um espa ̧co vazio;
• Em seguida, ́e apresentado o n ́umero de jogadas que ser ̃ao realizadas;
• Por fim, tem-se os valores referentes `as posi ̧c ̃oes x e y de cada jogada;
Sa ́ıda: Ao fim da partida o programa deve imprimir (GANHOU) se todas os quadrados
sem minas forem revelados; (PERDEU) caso alguma mina for descoberta; (FALTOU TER-
MINAR) se ap ́os todas as jogadas, nenhuma mina for descoberta e existirem quadrados
sem minas n ̃ao revelados. Obs: As sa ́ıdas do programa devem ser impressas exatamente
como est ́a descrito, com letras mai ́usculas.
tpp.pdf