Check out Makruk (Thai Chess), our featured variant for March, 2025.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Single Comment

Winther's Chess. (Updated!) Introducing the Bombard cannon, with standard peices (with zrf).[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Apr 17 02:03 PM EDT:

I managed to make the Interactive Diagram handle the 'pawn-mediated gating' methods used in many of Matt's games. The trick is to put the piece(s) beside the board, on the pawn rank. In this case I used HaruN Y's method of putting the piece on a brouhaha square adjacent to the board, and make it iron so that it cannot be captured from the board, an alternative, suitable when multiple pieces of the same type have to be gated, is to put those at some distance from the board, which cannot be bridged by the largest leap any on-board piece has, and equip the pieces there with an introduction move that can cross through the gap.

The off-board pieces start as 'dummies', only having the introduction move, and morph into the actual version with the on-board move as soon as they hit the board. This is invisible to the user when you use the same image for those.

The introduction move is a 'flying rook' move covering the entire pawn rank, [(mpW-)7...] in bracket notation. The continuation then steps sideways to where you want the pawn to be moved, so you can unload it there. Then it reverts direction with a ud leg to swap itself with the Pawn. For some methods this would complete the gating (on 2nd rank), for others you would have to do one additional mW step to end on the empty square behind the pawn.

The friendly capture (d) that picks up the piece you want to swap with must be forbidden for all types other than a (friendly) pawn, through the captureMatrix. This prevents you would use other pieces on 2nd rank to gate something in, and push those forward.

To really finish it, the piece to be introduced can be declared a 'shooter', so that a single click on the destination square will be enough to enter the move. (Without that you would also have to click the squares where the pawn is, and has to go.) This required the embedded JavaScript routine:

<script>
  function mainInit() {
    shooters[4] = 2;
  }
</script>

(The piece to introduce is type 4.) Perhaps I should provide a parameter to do this.

One caveat is that the type you use for the off-board dummy would be assigned zero or very low value by the heuristic that determines piece values, as the introduction move isn't worth much when you try to make it from a random location on a randomly set up board. This would cause the piece to always be gated immediately when it becomes possible, no matter how large a threat elsewhere on the board you are suffering. To cure that, you have to use a value parameter for the off-board type, to overrule the value by hand-picked one slightly below the on-board value of the piece. So that the AI would consider it good to gate in the piece, but not such an advantage that it would be willing to sacrifice material for it.

The Diagram doubles values of iron pieces, and apparently it even does that to values overruled by hand, so I had to specify half of what I wanted. (I suppose this could be considered a bug... But fixing it now would break all Diagrams I made using this gating method.)