From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 12 Dec 2018 17:36:50 +0000 (+0100)
Subject: Fix Ultima when no moves are available
X-Git-Url: https://git.auder.net/%7B%7B%20asset%28%27mixstore/images/assets/doc/current/%7B%7B%20pkg.url%20%7D%7D?a=commitdiff_plain;h=0279ac93197aa072991bce8f643ca68e99a54bc7;p=vchess.git

Fix Ultima when no moves are available
---

diff --git a/TODO b/TODO
index f8465c6c..07cef481 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,2 @@
 Full detection of repeated positions (including turn)
-Debug HalfChess
-Implement UltimaChess
+In UltimaChess, consider these rules modifications: http://www.inference.org.uk/mackay/ultima/ultima.html
diff --git a/public/javascripts/variants/Ultima.js b/public/javascripts/variants/Ultima.js
index 1db36919..7f9531eb 100644
--- a/public/javascripts/variants/Ultima.js
+++ b/public/javascripts/variants/Ultima.js
@@ -368,12 +368,6 @@ class UltimaRules extends ChessRules
 			V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep");
 	}
 
-	// TODO: verify this assertion
-	atLeastOneMove()
-	{
-		return true; //always at least one possible move
-	}
-
 	underCheck(move)
 	{
 		return false; //there is no check
@@ -440,7 +434,6 @@ class UltimaRules extends ChessRules
 			return "1/2";
 
 		const color = this.turn;
-		// TODO: do we need "atLeastOneMove()"?
 		if (this.atLeastOneMove() && this.kingPos[color][0] >= 0)
 			return "*";
 
@@ -449,7 +442,7 @@ class UltimaRules extends ChessRules
 
 	checkGameEnd()
 	{
-		// No valid move: our king disappeared
+		// Stalemate, or our king disappeared
 		return this.turn == "w" ? "0-1" : "1-0";
 	}