Parcours
/
Python
Python
/
Exercices
/
Compte les points au Go
Compte les points au Go

Compte les points au Go

Moyen

Instructions

Compte les points marqués sur un plateau de go.

Dans le jeu de go (aussi appelé baduk, igo, cờ vây et wéiqí), on gagne des points en encerclant complètement des intersections vides avec ses pierres. Les intersections encerclées d'un joueur constituent son territoire.

Calcule le territoire de chaque joueur. Tu peux supposer que toutes les pierres qui se sont retrouvées piégées dans le territoire ennemi ont déjà été retirées du plateau.

Détermine le territoire auquel appartient une coordonnée donnée.

Plusieurs intersections vides peuvent être encerclées en même temps, et pour l'encerclement, seuls les voisins horizontaux et verticaux comptent. Dans le diagramme suivant, les pierres qui comptent sont marquées « O » et celles qui ne comptent pas sont marquées « I » (ignorées). Les espaces vides représentent des intersections vides.

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

Pour être plus précis, une intersection vide fait partie du territoire d'un joueur si tous ses voisins sont soit des pierres de ce joueur, soit des intersections vides qui font partie du territoire de ce joueur.

Pour plus d'informations, voir Wikipédia ou Sensei's Library.

Messages d'exception

Il est parfois nécessaire de lever une exception. Quand on le fait, il faut toujours inclure un message d'erreur explicite pour indiquer l'origine de l'erreur. Cela rend le code plus lisible et facilite grandement le débogage. Si tu sais que la source de l'erreur sera d'un type précis, tu peux choisir de lever l'un des types d'erreurs intégrés, mais tu dois quand même y joindre un message explicite.

Cet exercice te demande d'utiliser l'instruction raise pour « lever » une ValueError quand les coordonnées fournies ne sont pas valides. Les tests ne réussiront que si tu lèves l'exception avec raise et que tu y joins un message.

Pour lever une ValueError avec un message, écris ce message comme argument du type d'exception :

# when the coordinates for the piece are invalid
raise ValueError('Invalid coordinate')
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Python Exercism

Prêt à commencer Compte les points au Go ?

Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.