Check out Symmetric Chess, our featured variant for March, 2024.


[ 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

Tenjiku Shogi. Fire Demons burn surrounding enemies, Generals capture jumping many pieces. (16x16, Cells: 256) [All Comments] [Add Comment or Rating]
📝H. G. Muller wrote on Fri, Feb 24, 2023 06:59 PM UTC in reply to H. G. Muller from Wed Feb 22 09:22 PM:

I have been streamlining the AI of the Diagram a bit, to make it possible to play variants like Tenjiku with a (more) reasonable thinking time. One source of trouble was that the jumping generals always have many captures, which tends to blow up Quiescence Search, even though they are all bad. To combat this I implemented more aggressive pruning of high x low captures of protected pieces. Such moves were already pruned, but only 'after the fact', as it was not known in advance whether a piece was protected. So it such moves would still be tried, and all replies generated. It would then abort when on of these reply moves could recapture. I now use information from the preceding move, recording all friendly pieces that blocked moves that had capture ability. These were protected before the move. I now prune H x L capture of these pieces in the next ply. This is not 100% reliable, as the preceding move could have abandoned a piece it was protecting, or block a protection by another piece. But it is a very fast method, and the idea is that the speedup, through which you could afford larger search depth, would more than compensate for the occasional inaccuracy.

Another source of inefficiency was duplicate moves. Since the AI does not use a transposition table, it would not recognize that a move leading to a position it already searched was a duplicat, and it would search it again. Ideally duplicat moves should not occur, but it is often cumbersome to make an XBetza description that avoids them. (E.g. for BA the A leap is a duplicat if the square it leaps over is empty.) E.g. B(paf)0cB includes a plain cB  next to B, duplicating all non-hopping captures. This could be avoded by writing the non-hopping part as mB, but that gives misleadin highlighting. Particularly disastrous were the area moves: aaK has 8x7x7 = 392 paths when centralized on an empty board (and together with aK and K it makes 356). But there are of course only 49 possible destinations, so each of those can be reached through about 9 paths on average. I now let the move generator suppress repeated destinations for the same piece, if there are no locust squares.

I also hand-tuned the value of the Great General upward; based on its move the Vice General would be worth more, because the value estimates ignore the blocking power. This also distracted (and thus slowed down) the search, by thinking that GG x VG* (kamikaze) was a good move, worth searching.

As a result the time it needs to play 1... SEn11 after 1.j6 at 2.5 ply went down from 47 sec to about 7.

In the process of debugging this I also stumbled on a bug in the piece tracking; at game level this works fine, but in the AI it did not. (Because at some point moves for an enemy piece are generated to test if it delivers check, and this made it track pieces of the opposit color.) This is now fixed too.


Of course Modern Tenjiku Shogi is a game that is impossible to play without opening knowledge, which the Diagram doesn't have at all. So it will still lose in a few moves against a player who knows what he is doing. But at least it plays reasonable moves.