Tracks
/
Python
Python
/
Ejercicios
/
Conteo de Go
Conteo de Go

Conteo de Go

Intermedia

Instrucciones

Cuenta los puntos anotados en un tablero de Go.

En el juego de go (también conocido como baduk, igo, cờ vây y wéiqí) se ganan puntos al rodear por completo intersecciones vacías con tus piedras. Las intersecciones rodeadas de un jugador se conocen como su territorio.

Calcula el territorio de cada jugador. Puedes suponer que las piedras que quedaron atrapadas en territorio enemigo ya se retiraron del tablero.

Determina el territorio que incluye una coordenada específica.

Se pueden rodear varias intersecciones vacías a la vez, y para rodear solo cuentan los vecinos horizontales y verticales. En el siguiente diagrama, las piedras que importan están marcadas con «O» y las que no, con «I» (ignoradas). Los espacios vacíos representan intersecciones vacías.

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

Para ser más precisos, una intersección vacía forma parte del territorio de un jugador si todos sus vecinos son piedras de ese jugador o intersecciones vacías que forman parte del territorio de ese jugador.

Para más información, consulta Wikipedia o Sensei's Library.

Mensajes de excepción

A veces es necesario lanzar una excepción. Cuando lo hagas, siempre debes incluir un mensaje de error significativo que indique cuál es el origen del error. Esto hace que tu código sea más legible y ayuda mucho a la hora de depurar. En los casos en los que sabes que el origen del error va a ser de un tipo determinado, puedes optar por lanzar uno de los tipos de error integrados, pero aun así debes incluir un mensaje significativo.

Este ejercicio en particular requiere que uses la sentencia raise para «lanzar» un ValueError cuando se den coordenadas no válidas. Las pruebas solo pasarán si usas raise para lanzar la exception y además incluyes un mensaje con ella.

Para lanzar un ValueError con un mensaje, escribe el mensaje como argumento del tipo exception:

# when the coordinates for the piece are invalid
raise ValueError('Invalid coordinate')
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Python Exercism

¿Todo listo para empezar Conteo de Go?

Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.