Trilhas
/
Python
Python
/
Exercícios
/
Campo de flores
Campo de flores

Campo de flores

Médio

Introdução

Flower Field é uma releitura compassiva do popular jogo Minesweeper. O objetivo do jogo é encontrar todas as flores do jardim usando dicas numéricas que indicam quantas flores estão diretamente adjacentes (na horizontal, na vertical, na diagonal) a uma casa. "Flower Field" foi lançado em versões regionais do Microsoft Windows na Itália, Alemanha, Coreia do Sul, Japão e Taiwan.

Instruções

Sua tarefa é adicionar a contagem de flores às casas vazias de um jardim do Campo de Flores já concluído. O jardim em si é um tabuleiro retangular composto de casas que estão vazias (' ') ou têm uma flor ('*').

Para cada casa vazia, conte quantas flores estão adjacentes a ela (na horizontal, na vertical, na diagonal). Se a casa vazia não tiver flores adjacentes, deixe-a vazia. Caso contrário, substitua-a pela contagem de flores adjacentes.

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

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

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

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

Mensagens de exceção

Às vezes, é necessário lançar uma exceção. Quando você faz isso, inclua sempre uma mensagem de erro significativa para indicar qual é a origem do erro. Isso deixa seu código mais legível e ajuda muito a depurar o código. Em situações em que você sabe que a origem do erro será de um tipo específico, você pode escolher lançar um dos tipos de erro internos, mas ainda assim deve incluir uma mensagem significativa.

Este exercício em particular exige que você use a instrução raise para "lançar" um ValueError quando a função board() receber uma entrada malformada. Os testes só vão passar se você fizer o raise da exception e incluir uma mensagem com ela.

Para lançar um ValueError com uma mensagem, escreva a mensagem como um argumento do tipo exception:

# when the board receives malformed input
raise ValueError("The board is invalid with current input.")
Editar via GitHub O link abre em uma nova janela ou aba
Python Exercism

Tudo pronto para começar Campo de flores?

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

Mergulho profundo em Campo de flores!

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.