Add a function to every game backend which indicates whether a game

state is in a solved position, and a midend function wrapping it.

(Or, at least, a situation in which further play is pointless. The
point is, given that game state, would it be a good idea for a front
end that does that sort of thing to proactively provide the option to
start a fresh game?)

[originally from svn r9140]
This commit is contained in:
Simon Tatham
2011-04-02 16:19:12 +00:00
parent 8c6c8df8f4
commit 980880be1f
42 changed files with 307 additions and 0 deletions

View File

@ -1336,6 +1336,21 @@ char *midend_solve(midend *me)
return NULL;
}
int midend_is_solved(midend *me)
{
/*
* We should probably never be called when the state stack has no
* states on it at all - ideally, midends should never be left in
* that state for long enough to get put down and forgotten about.
* But if we are, I think we return _true_ - pedantically speaking
* a midend in that state is 'vacuously solved', and more
* practically, a user whose midend has been left in that state
* probably _does_ want the 'new game' option to be prominent.
*/
return (me->statepos == 0 ||
me->ourgame->is_solved(me->states[me->statepos-1].state));
}
char *midend_rewrite_statusbar(midend *me, char *text)
{
/*