Bario: final fix
authorBenjamin Auder <benjamin.auder@somewhere>
Thu, 7 Jul 2022 21:28:56 +0000 (23:28 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Thu, 7 Jul 2022 21:28:56 +0000 (23:28 +0200)
variants/Atarigo/rules.html
variants/Bario/class.js
variants/Bario/rules.html

index c65158e..62f712f 100644 (file)
@@ -1 +1,13 @@
-<p>TODO</p>
+<p>
+  Simplified version of the Go game:
+  the first player to capture something wins.
+</p>
+
+<p>
+  Capture stones by surrounding them.
+  <a href="https://en.wikipedia.org/wiki/Go_variants#First_Capture">
+    Wikipedia page.
+  </a>
+</p>
+
+<p class="author">Yasutoshi Yasuda (2003).</p>
index 871a537..603aded 100644 (file)
@@ -113,6 +113,8 @@ export default class BarioRules extends ChessRules {
       case 0:
         if (typeof x == "string")
           moves = this.getDropMovesFrom([x, y]);
+        // Empty move: just start + end
+        moves.forEach(m => {m.vanish.pop(); m.appear.pop();});
         break;
       case 1:
         // Both normal move (from defined piece) and definition allowed
@@ -201,7 +203,8 @@ export default class BarioRules extends ChessRules {
   postPlay(move) {
     const color = this.turn;
     if (this.movesCount <= 1 || move.reset || move.next) {
-      this.tryChangeTurn();
+      if (!move.next)
+        this.tryChangeTurn();
       return;
     }
     if (this.subTurn == 0)
@@ -216,7 +219,7 @@ export default class BarioRules extends ChessRules {
       super.postPlay(move);
     else if (typeof move.start.x == "string") {
       super.updateReserve(
-        color, move.appear[0].p, this.reserve[color][move.appear[0].p] - 1);
+        color, move.start.y, this.reserve[color][move.start.y] - 1);
       if (move.vanish.length == 1 && move.vanish[0].p == 'u')
         this.definition = move.end;
       this.subTurn++;
@@ -224,17 +227,16 @@ export default class BarioRules extends ChessRules {
     else {
       this.subTurn = 0;
       this.captureUndef = move.end;
-      this.tryChangeTurn(move, captureUndef);
+      this.tryChangeTurn(null, captureUndef);
     }
   }
 
+  // NOTE: not "trying", the turn always change here (TODO?)
   tryChangeTurn(move, captureUndef) {
-    if (!move.next) {
-      this.definition = null;
-      this.subTurn = captureUndef ? 0 : 1;
-      this.turn = C.GetOppCol(this.turn);
-      this.movesCount++;
-    }
+    this.definition = null;
+    this.subTurn = captureUndef ? 0 : 1;
+    this.turn = C.GetOppCol(this.turn);
+    this.movesCount++;
   }
 
   computeNextMove(move) {
index c65158e..f5fd782 100644 (file)
@@ -1 +1,21 @@
-<p>TODO</p>
+<p>
+  Pieces start in an undefined (and unusable) state,
+  pictured by a question mark.
+  At first move, click on a square for the king.
+</p>
+
+<p>
+  Define a piece by dragging a reserve piece onto a question mark,
+  and then move it on the board.
+</p>
+
+<p>
+  Once all pieces of some color have been defined,
+  all pieces on board return to undefined state.
+</p>
+
+<a href="https://www.bario-chess-checkers-chessphotography-spaceart.de/">
+  Complete rules description.
+</a>
+
+<p class="author">Panos Louridas (1985).</p>