NAME
Game::Go::Marking - the confirmation phase, which Article 9 requires
VERSION
Version 0.01
SYNOPSIS
# reached through the game, not built directly
my $m = $game->marking;
$m->proposer; # the colour whose proposal it is
$m->turn; # the colour to speak now: one, always
$m->dead_points; # the chains proposed dead
DESCRIPTION
State for the phase between the last move and the score.
Two consecutive passes stop play. They do not end the game. Article 9.2 ends it, "through confirmation and agreement by the two players about the life and death of stones and territory", and that is a negotiation rather than a computation.
It is sequential, and the site is the reason
The obvious design has both players confirming, so both seats wait. That would void finished games. The site applies sys abandon when a deadline passes with two seats waiting, and its contract says so in as many words: "one seat waiting forfeits, two waiting is abandoned". A game that has reached this phase has been played to the end, possibly over a week, and voiding it because one player stopped answering is the worst result the site can produce.
So: the proposer marks and says done, then the answerer accepts or disputes. Exactly one seat is waiting in every reachable state.
Nothing is proposed dead
The default mark set is empty. A dead-stone proposal is a life-and-death solver, and this distribution does not have one. An empty set is also the right answer for a game played out properly, so the common case is done then accept.
What the engine does know is Benson's unconditionally-alive set, and it uses it as a veto: a chain that is alive whatever its owner does cannot be agreed dead. See "mark" in Game::Go.
ATTRIBUTES
proposer, answerer
The two colours, in their roles for this round.
proposed
True once the proposer has said done. Before that the answerer has nothing to answer.
dead
The chains marked dead, as a hashref keyed by each chain's canonical point.
seki
The points marked as seki, as a hashref. Article 8 gives seki no territory, not even its eye points, and no flood fill can see that on its own, so seki is an agreed fact rather than a detected one. The region a marked point belongs to is resolved by the scorer.
METHODS
turn
The colour to speak now: the proposer until done, the answerer afterwards. One colour, never two.
dead_points, seki_points
The marks as sorted arrayrefs.
is_dead, is_seki
toggle_dead, toggle_seki
Set or clear one mark, returning its new state.
SEE ALSO
AUTHOR
LNATION <email@lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION <email@lnation.org>.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)