[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]
Check out Janggi (Korean Chess), our featured variant for December, 2024.
Check out Janggi (Korean Chess), our featured variant for December, 2024.
The new default cbMoveMidZ for grid boards should be satisfactory for any variant with pieces that do not move too strangely, no matter how it was defined or whether it includes fairy-move-model.js. The algorithm I use is
1) if the distance moved (as according to the geometry, i.e. measured in King steps) equals 1, it slides.
2) It examines the move graph of the moved piece from the given square, to find the move's destination in it.
3) If the destination is the first square on a path, jump
4) If the destination is reached through other squares, but the move is a capture, and is indicated as a screen capture: jump
5) Slide, but if the first step of the path is not orthogonal, use a kludge that I buld into the animation function in Jocly's core to request diagonal preference as tie breaker.
One of the improvements I made in the animation function is that in case of sliding it splits oblique moves into an orthogonal and a diagonal leg, and then first animates the shortest of those, and then the longer, each in half the time. This to prevent Griffons and Rhinos to blunder through other pieces. But when the two legs have equal length (as on a (2,1) move), it would normally prefer to take the orthogonal leg first (as for the Xiangqi Horse). But cbMoveMidZ can revert that by specifying an invisibly small negative hop height. This is needed to also get the Griffin move to the N squares right.
I think the algorithm would break only if a piece has multiple ways to get to a square.
Apart from Minjiku Shogi (which does not feature a Tiger) all Shogi variants use kanji tiles. It would be nice to have a 2d Tiger, though, for the Chu Shogi (and later Tenjiku Shogi) Blind Tiger. I now use a Buffalo for that...