Trilhas
/
Pharo
Pharo
/
Exercícios
/
Campo Minado
Campo Minado

Campo Minado

Médio

Introdução

Minesweeper é um jogo popular no qual o jogador precisa encontrar as minas usando dicas numéricas que indicam quantas minas estão diretamente adjacentes (na horizontal, na vertical ou na diagonal) a uma casa.

Instruções

Sua tarefa é adicionar a contagem de minas às casas vazias de um tabuleiro de Campo Minado já completo. O tabuleiro em si é um retângulo composto de casas que são vazias (' ') ou que contêm uma mina ('*').

Para cada casa vazia, conte quantas minas são adjacentes a ela (na horizontal, na vertical e na diagonal). Se a casa vazia não tiver minas adjacentes, deixe-a vazia. Caso contrário, substitua seu conteúdo pela quantidade de minas adjacentes.

Por exemplo, você pode receber um tabuleiro 5 x 4 como este (aqui, os espaços vazios são representados pelo caractere '·' para exibição na tela):

·*·*·
··*··
··*··
·····

E seu código deve transformá-lo nisto:

1*3*1
13*31
·2*2·
·111·

Observação

Localizações x,y costumam ser representadas por um Point, o que leva a algumas funções de ponto úteis que podem ajudar nisso. Como alternativa, representar isso como um Array 2D também pode ser útil. De qualquer forma, definir alguns métodos de extensão descritivos que podem deixar sua solução muito mais legível e elegante.

Editar via GitHub O link abre em uma nova janela ou aba
Pharo Exercism

Tudo pronto para começar Campo Minado?

Crie sua conta no Exercism para aprender e dominar Pharo com 50 exercícios e mentoria humana de verdade, tudo de graça.

Mergulho profundo em Campo Minado!

Vamos explorar laços for aninhados, o uso inteligente de min/max para simplificar a verificação de limites, pipelines funcionais e o uso de matrizes bidimensionais.