Percursos
/
Python
Python
/
Exercícios
/
Contagem de Go
Contagem de Go

Contagem de Go

Médio

Instruções

Conta os pontos marcados num tabuleiro de Go.

No jogo de Go (também conhecido como baduk, igo, cờ vây e wéiqí), ganham-se pontos ao rodear completamente interseções vazias com as tuas pedras. As interseções rodeadas de um jogador são conhecidas como o seu território.

Calcula o território de cada jogador. Podes assumir que quaisquer pedras que tenham ficado presas em território inimigo já foram retiradas do tabuleiro.

Determina o território que inclui uma coordenada especificada.

É possível rodear várias interseções vazias ao mesmo tempo e, para rodear, só contam os vizinhos horizontais e verticais. No diagrama seguinte, as pedras que importam estão marcadas com "O" e as que não importam estão marcadas com "I" (ignoradas). Os espaços vazios representam interseções vazias.

+----+
|IOOI|
|O  O|
|O OI|
|IOI |
+----+

Para ser mais preciso, uma interseção vazia faz parte do território de um jogador se todos os seus vizinhos forem pedras desse jogador ou interseções vazias que fazem parte do território desse jogador.

Para mais informações, consulta a Wikipedia ou a Sensei's Library.

Mensagens de exceção

Por vezes, é necessário lançar uma exceção. Quando o fazes, deves incluir sempre uma mensagem de erro esclarecedora que indique qual é a origem do erro. Isto torna o teu código mais legível e ajuda imenso a depurar. Nos casos em que sabes que a origem do erro será de um determinado tipo, podes optar por lançar um dos tipos de erro incorporados, mas deves continuar a incluir uma mensagem esclarecedora.

Este exercício em particular exige que uses a instrução raise para "lançar" um ValueError quando recebes coordenadas inválidas. Os testes só passam se fizeres o raise da exception e incluíres uma mensagem com ela.

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

# when the coordinates for the piece are invalid
raise ValueError('Invalid coordinate')
Editar via GitHub A ligação abre numa nova janela ou separador
Python Exercism

Estás pronto para começar Contagem de Go?

Inscreve-te no Exercism para aprenderes e dominares Python com 17 conceitos146 exercícios, e mentoria humana real, tudo grátis.