Comments by FergusDuniho
might it be worth somehow marking Editors specially in the Comments?; there is currently no indication of who is or isn't an editor w/o going to one of the special pages
We used to have icons for this, which I had inadvertently left out when I rewrote the code for displaying comments. However, some of the code was still in place, and I fixed it up to identify editors, the webmaster, authors, and inventors. Instead of .gif files, I used unicode emojis for some icons, but I left the editor image alone, since it seems appropriate. However, I didn't display it for the webmaster, because the two icons didn't look good together. If you hover over an icon, you will see a tooltip saying what it is. Also, the names of editors (which includes the webmaster) appear in boldface, and the names of authors or inventors appear in italics.
I did cut those to shape, though
Before I read that, I thought you might have used clear sticker paper, which prompted me to search for the product.
H.G., your image is not showing up in the comment, though it does show up if I load it in a new tab. My best guess as to why is that it is using http, and this is an https site. Try uploading it here and changing the link.
This is mostly the same as Extinction Chess with only one slight difference. In Extinction Chess, you could win by capturing all your opponent's Knights or all your opponent's Bishops, but in this game, you would have to capture both the Knights and the Bishops. While slightly different, this is really too much like Extinction Chess to count it as a separate variant. Maybe it could be mentioned on the Extinction Chess page as a possible variation of that game.
I do not currently have an equally easy way to make round boards. If you know of an easy way to make a round board, please share!)
What I did to make a hexagonal board will work for any 2D board.
- Create an image file.
- Divide it up into parts if you want it bigger than you can print as one piece.
- Make sure each image file will print to the size you want.
- Print the parts onto sticker paper.
- Apply the sticker paper to boards you can piece together later.
If you want a circular board in particular, you can start by having Game Courier generate an image of the board.
Since many of these award sites or programs are defunct, I used the Wayback Machine to search for the pages that actually mention the Chess Variant Pages, and when I found one, I changed the link to an archived version of that page. After all, displaying awards is more meaningful if we can document that we actually got the awards.
I didn't know that Excel could be used for making board diagrams. Anyway, the closest thing I have to Excel is LibreOffice Calc, and I've never used it that way. Paint.net will let you resize images using the Resize menu item in the Image menu. You may also use the keyboard shortcut of Ctrl-R.
Since Ai Ai beat the Interactive Diagram at its default settings, I raised the Interactive Diagram to 4 plies and tried again. This game ended in a draw by three-times repetition, as called by Ai Ai at move 60. Apart from that, the Interactive Diagram was ahead in material and might have won with better endgame play. Here's the MGS file from Ai Ai: ID4-vs-AiAi-Chess.mgs. At move 60, I let the Interactive Diagram, which had been playing White, continue as Black, and I took over as White, eventually checkmating Black.
- c4 Nf6
- d4 e6
- Qa4 Be7
- Nc3 Nc6
- Be3 Bb4
- O-O-O Bxc3
- bxc3 Ng4
- d5 exd5
- cxd5 Nxe3
- Qe4 Qe7
- Qxe3 Qxe3
- fxe3 Ne5
- Nf3 Ng4
- Rd4 Nf2
- Rg1 c5
- Rf4 f5
- Nh4 Ne4
- Nxf5 Nxc3
- Nd6 Ke7
- Nf5 Kd8
- Nxg7 Nxd5
- Rf3 Nb4
- a4 Kc7
- g4 d5
- Rf7 Kd6
- Rf6 Ke5
- Nh5 Na2
- Kb2 Nb4
- Rf7 b6
- Nf4 Kd6
- Rf6 Ke7
- Rg6 Nd3
- exd3 hxg6
- Nxg6 Ke6
- Nxh8 Rb8
- Ng6 Bd7
- Nf4 Kd6
- Bg2 d4
- exd4 cxd4
- Ne2 Ke5
- Be4 b5
- a5 b4
- h3 Rb5
- Ra1 a6
- Ng1 Be6
- Nf3 Kf6
- Nxd4 Re5
- Nxe6 Kxe6
- Bf5 Kd6
- Kb3 Ke7
- Kxb4 Rb5
- Kc4 Kd6
- Be4 Rc5
- Kd4 Re5
- Ra2 Rb5
- Ra3 Ke6
- Bf5 Kd6
- Be4 Ke6
- Bf5 Kd6
- Be4 Rb8
- g5 h4
- Ra2 Rh8
- Rh2 Re8
- h5 Re5
- h6 Rxa5
- h7 Ra4
- Ke3 Ra1
- h8=Q Re1
- Kd4 Ra1
- Rh6 Kc7
- Qg7 Kb8
- Rh8
Since Ai Ai and Ludii both use Java, I ran a game of Chess against them. Ai Ai won. Since Ai Ai and Zillions-of-Games both run on the computer, I also ran a game between them. Zillions-of-Games won this one. I have uploaded the MGS files Ai Ai records games in: Ludii-vs-AiAi-at-Chess.mgs and ZoG-vs-AIAi-Chess.mgs.
I then ran a game between the Interactive Diagram and Ai Ai. This was a very close game, eventually coming down to a Pawn race in which Ai Ai had a Rook and two Pawns, and the Interactive Diagram had a Bishop and two Pawns. Ai Ai eventually won: ID-vs-AiAi-Chess.mgs
- d4 Nf6
- c3 d5
- Bf4 Bd7
- Qb3 Bc6
- Nd2 Nbd7
- O-O-O Nh5
- Bg5 h6
- Bh4 g5
- g4 Nhf6
- Bg3 Bg7
- h3 h5
- Ngf3 hxg4
- Nxg5 Bh6
- hxg4 Nxg4
- Bh3 Bxg5
- Bxg4 Rxh1
- Rxh1 Bxd2
- Kxd2 e6
- Rh8 Nf8
- Bf4 Qf6
- Rxf8 Kxf8
- Qb4 Ke8
- Bxc7 Qg5
- f4 Qxg4
- Be5 f6
- Bd6 Qg2
- Bc5 Kd7
- a4 b6
- Be7 Bxa4
- Bxf6 Bc6
- Qe7 Kc8
- Qxe6 Bd7
- Qe5 Kb7
- Bg5 Bg4
- Qe7 Kc6
- Qf6 Kb7
- Qe7 Kc6
- Qf6 Kb5
- Qe5 Kc4
- Qc7 Kb3
- Qe5 Kxb2
- c4 dxc4
- Qb5 Ka1
- Qa4 Kb2
- Qb4 Ka1
- Qxc4 Bxe2
- Qxe2 Qxe2
- Kxe2 Rf8
- Kf3 Ka2
- Ke2 Kb3
- Kd3 b5
- Bh6 Rf6
- Bg5 Rd6
- Be7 Rd7
- Bc5 b4
- f5 Ka4
- Kc4 b3
- Kc3 Rf7
- Kc4 b2
- f6 b1=Q
- Kc3 Rxf6
- Bxa7 Rf3
- Kd2 Qd3
- Kc1 Kb3
- Bc5
In Ludii vs Biased UBFM, the game was a draw through three-times repetition. It was more interesting, because White kept chasing the King with its Queen while Black had two connected Rooks and a passed Pawn. I eventually took over for White and won, but it was probably due to Biased UBFM's bad playing.
- (Move E2-E4)
- (Move A7-A5)
- (Move D1-H5)
- (Move B7-B6)
- (Move F1-B5)
- (Move A5-A4)
- (Move D2-D4)
- (Move G8-F6)
- (Move G1-H3)
- (Move H7-H6)
- (Move B1-A3)
- (Move F6-H5)
- (Move C1-D2)
- (Move C7-C6)
- (Move H3-G5)
- (Move D8-C7)
- (Move B5-E2)
- (Move B6-B5)
- (Move E2-H5)
- (Move D7-D6)
- (Move H5-F7)
- (Move E8-D8)
- (Move H2-H4)
- (Move H6-H5)
- (Move D2-F4)
- (Move A8-A6)
- (Move G5-F3)
- (Move A6-A8)
- (Move E1-E2)
- (Move B5-B4)
- (Move C2-C3)
- (Move B4-A3)
- (Move B2-A3)
- (Move C7-B7)
- (Move F7-E6)
- (Move A8-A5)
- (Move F3-G5)
- (Move H8-G8)
- (Move G5-F7)
- (Move D8-E8)
- (Move F7-D6)
- (Move E7-D6)
- (Move D4-D5)
- (Move C6-D5)
- (Move A1-B1)
- (Move G7-G6)
- (Move B1-B7)
- (Move C8-B7)
- (Move E6-D7)
- (Move B8-D7)
- (Move C3-C4)
- (Move D5-C4)
- (Move H1-B1)
- (Move A5-A6)
- (Move B1-B7)
- (Move E8-D8)
- (Move F4-G5)
- (Move D8-C8)
- (Move B7-B1)
- (Move D6-D5)
- (Move G5-D2)
- (Move C8-D8)
- (Move D2-G5)
- (Move D8-E8)
- (Move G2-G4)
- (Move H5-G4)
- (Move H4-H5)
- (Move F8-A3)
- (Move H5-G6)
- (Move G8-H8)
- (Move G5-F4)
- (Move A3-C5)
- (Move G6-G7)
- (Move H8-H5)
- (Move A2-A3)
- (Move H5-H8)
- (Move F4-G5)
- (Move H8-H3)
- (Move G5-F6)
- (Move H3-H2)
- (Move B1-B8)
- (Move D7-B8)
- (Move F6-H4)
- (Move H2-H4)
- (Move G7-G8)
- (Promote G8 to Queen1)
- (Move E8-D7)
- (Move G8-D5)
- (Move D7-E8)
- (Move D5-C5)
- (Move H4-H6)
- (Move C5-E5)
- (Move E8-F8)
- (Move E5-B8)
- (Move F8-G7)
- (Move B8-E5)
- (Move G7-G8)
- (Move E5-G5)
- (Move G8-F8)
- (Move G5-D8)
- (Move F8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D5)
- (Move G8-G7)
- (Move D5-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D5)
- (Move G8-G7)
- (Move D5-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-H7)
- (Move D8-D7)
- (Move H7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
- (Move G7-G8)
- (Move D7-D8)
- (Move G8-G7)
- (Move D8-D7)
At this point, I took over as White:
- (Move G7-G8)
- (Move D7-E8)
- (Move G8-H7)
- (Move E8-F7)
- (Move H7-H8)
- (Move F7-C4)
- (Move H8-G7)
- (Move E4-E5)
- (Move A6-A8)
- (Move C4-C7)
- (Move G7-G6)
- (Move E5-E6)
- (Move H6-H5)
- (Move E6-E7)
- (Move A8-H8)
- (Move C7-D6)
- (Move G6-F7)
- (Move D6-D7)
- (Move H5-E5)
- (Move E2-D3)
- (Move H8-E8)
- (Move D7-G4)
- (Move E8-D8)
- (Move D3-C3)
- (Move D8-H8)
- (Move F2-F4)
- (Move H8-H3)
- (Move G4-H3)
- (Move E5-D5)
- (Move H3-H7)
- (Move F7-E8)
- (Move H7-G7)
- (Move D5-D6)
- (Move G7-F8)
- (Move E8-D7)
- (Move E7-E8)
- (Promote E8 to Queen1)
- (Move D7-C7)
- (Move E8-C8)
- (Move C7-B6)
- (Move F8-D6)
- (Move B6-A7)
- (Move D6-A6)
Ludii drew UBFM by three-times repetition, maybe not too surprising since Ludii is more fully called Ludii (UBFM). The surprising thing is how UBFM flubbed up the endgame. It had both a Queen and a Rook against the King, and instead of quickly going for checkmate, it kept repeating the same Rook moves back and forth while the King kept going back and forth.
- (Move E2-E4)
- (Move E7-E5)
- (Move D1-H5)
- (Move D7-D5)
- (Move F1-B5)
- (Move B8-C6)
- (Move H5-E5)
- (Move F8-E7)
- (Move D2-D4)
- (Move C8-G4)
- (Move E4-D5)
- (Move D8-D6)
- (Move B5-C6)
- (Move G4-D7)
- (Move C1-G5)
- (Move D6-E5)
- (Move D4-E5)
- (Move E7-B4)
- (Move E1-E2)
- (Move B7-C6)
- (Move G1-F3)
- (Move D7-F5)
- (Move B1-C3)
- (Move F7-F6)
- (Move D5-C6)
- (Move F6-G5)
- (Move A2-A3)
- (Move B4-C3)
- (Move B2-C3)
- (Move A8-D8)
- (Move F3-D4)
- (Move F5-G4)
- (Move E2-E3)
- (Move G8-E7)
- (Move A3-A4)
- (Move E7-D5)
- (Move E3-D2)
- (Move D5-F4)
- (Move H2-H4)
- (Move G5-H4)
- (Move D2-E3)
- (Move F4-G2)
- (Move E3-D3)
- (Move H4-H3)
- (Move E5-E6)
- (Move E8-E7)
- (Move D3-C4)
- (Move G4-F5)
- (Move D4-F5)
- (Move E7-F6)
- (Move F5-D6)
- (Move D8-D6)
- (Move F2-F4)
- (Move H8-B8)
- (Move A1-E1)
- (Move G2-E1)
- (Move H1-E1)
- (Move D6-D2)
- (Move E1-G1)
- (Move D2-G2)
- (Move G1-G2)
- (Move H3-G2)
- (Move C4-D3)
- (Move F6-E7)
- (Move D3-E3)
- (Move G2-G1)
- (Promote G1 to Queen2)
- (Move E3-E2)
- (Move B8-D8)
- (Move E2-F3)
- (Move D8-B8)
- (Move A4-A5)
- (Move G1-D1)
- (Move F3-F2)
- (Move A7-A6)
- (Move F4-F5)
- (Move D1-D2)
- (Move F2-F3)
- (Move D2-C3)
- (Move F3-G2)
- (Move C3-D2)
- (Move G2-G3)
- (Move D2-E3)
- (Move G3-G2)
- (Move E7-D6)
- (Move F5-F6)
- (Move G7-F6)
- (Move G2-H2)
- (Move D6-E6)
- (Move H2-G2)
- (Move E6-F7)
- (Move G2-H2)
- (Move B8-B1)
- (Move H2-G2)
- (Move F6-F5)
- (Move C2-C3)
- (Move E3-C3)
- (Move G2-H2)
- (Move C3-E3)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
- (Move G2-H2)
- (Move F7-G7)
- (Move H2-G2)
- (Move G7-F7)
- (Move G2-H2)
- (Move D1-B1)
- (Move H2-G2)
- (Move B1-D1)
For some reason, I couldn't find the Ludii Player on my computer today. So, I downloaded it again and noted that it was in my Downloads folder before running it. It is just a .jar file and doesn't install anything.
Continuing to use it, EPT-QB quickly beat Ludii. The ironic thing is that EPT-QB made a terrible move, exposing its Queen to en prise capture by either the Bishop or the Queen, and instead of taking the Queen, Ludii just moved its Queen beside it. Then EPT-QB captured the Bishop for checkmate.
- (Move D2-D4)
- (Move E7-E6)
- (Move D1-D3)
- (Move D8-F6)
- (Move D3-B5)
- (Move F6-G5)
- (Move B5-F5)
- (Move G5-C1)
I have been running one game after another on Ludii Player between Ludii as White and another agent as Black at one second thinking time each. Going from top down, each has lost to Ludii until I got to EPT, which beat Ludii. Here is that game:
Turn 1. E2-E4
Turn 2. E7-E6
Turn 3. B2-B4
Turn 4. B4-
Turn 5. C1-B2
Turn 6. D7-D5
Turn 7. F1-B5
Turn 8. E8-F8
Turn 9. D1-G4
Turn 10. G7-G6
Turn 11. B2-G7
Turn 12. G7-
Turn 13. G4-G5
Turn 14. G5-
Turn 15. G1-E2
Turn 16. C8-D7
Turn 17. D7-
Turn 18. D7-
Turn 19. E1=0
Turn 20. B4-F8
Turn 21. G2-G4
Turn 22. C7-C6
Turn 23. G1-G2
Turn 24. G5-H4
Turn 25. B1-C3
Turn 26. F2-
Turn 27. F2-
Turn 28. F7-F5
Turn 29. D5-
Turn 30. F8-B4
Turn 31. B4-
Turn 32. G8-F6
Turn 33. F2-F3
Turn 34. A8-B8
Turn 35. A2-A4
Turn 36. H8-G8
Turn 37. G4-G5
Turn 38. E4-
Turn 39. A4-A5
Turn 40. E4-G3
Turn 41. G3-
Turn 42. D7-E5
Turn 43. B4-D5
Turn 44. F3-
Turn 45. F3-
Turn 46. D5-
Turn 47. A1-B1
Turn 48. B8-C8
Turn 49. B7-
Turn 50. C8-C7
Turn 51. C7-
Turn 52. G7-H8
Turn 53. E2-D4
Turn 54. G8-G7
Turn 55. C7-C8
Turn 56. G7-G8
Turn 57. C8-B8
Turn 58. B8-
Turn 59. F3-F2
Turn 60. B8-B2
Turn 61. E6-
Turn 62. C2-
Turn 63. E6-D4
Turn 64. D2-
Turn 65. D4-E2
Turn 66. A7-A6
Turn 67. H2-H4
Turn 68. E2-
Turn 69. E2-
Turn 70. H8-G8
Turn 71. E2-D2
Turn 72. G8-F7
Turn 73. D2-C2
Turn 74. F7-E6
Turn 75. C2-C3
Turn 76. E6-D6
Turn 77. C3-B2
Turn 78. D5-D4
Turn 79. B2-B3
Turn 80. D6-D5
Turn 81. B3-B2
Turn 82. D5-C4
Turn 83. B2-C2
Turn 84. D4-D3
Turn 85. C2-B2
Turn 86. D3-D2
Turn 87. B2-C2
Turn 88. D2-D1, D1 => Bishop2
Turn 89. D1-
Turn 90. F5-F4
Turn 91. D1-C2
Turn 92. F4-F3
Turn 93. C2-B2
Turn 94. F3-F2
Turn 95. B2-C2
Turn 96. F2-F1, F1 => Queen2
Turn 97. H4-H5
Turn 98. F1-F4
Turn 99. C2-B1
Turn 100. G5-
Turn 101. H5-H6
Turn 102. C4-B3
Turn 103. B1-A1
Turn 104. G5-C1
I'm done for the night.
Since the Ludii Player has many engines (or agents) to choose from, I had it do an analysis to find the best player for Chess. The analysis was quick, and it said "Best predicted agent is AlphaBeta". But I already found that it played poorly against Ludii. In case more thinking time would eventually give Alpha-Beta an edge, I increased the thinking time to 5 seconds for another game between Ludii as White and Alpha-Beta as Black. Ludii won this game with checkmate. During the game, it showed an analysis of each engine, and Ludii, identified here as UBFM consistently had a higher search depth than Alpha-Beta.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.13999999,
1196 different states were evaluated
50 iterations, with 134 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.20000005,
909 different states were evaluated
30 iterations, with 68 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.54125,
1014 different states were evaluated
33 iterations, with 97 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.6924999,
1002 different states were evaluated
28 iterations, with 75 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 6:
best value observed at root 1.2237501,
837 different states were evaluated
32 iterations, with 110 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.7437501,
878 different states were evaluated
37 iterations, with 114 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.66375005,
881 different states were evaluated
36 iterations, with 72 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.7237501,
883 different states were evaluated
35 iterations, with 101 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 2:
best value observed at root 0.6237501,
894 different states were evaluated
33 iterations, with 65 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.9375,
908 different states were evaluated
24 iterations, with 65 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.9112501,
918 different states were evaluated
25 iterations, with 63 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.9512501,
1025 different states were evaluated
39 iterations, with 80 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.77125,
900 different states were evaluated
35 iterations, with 71 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 2:
best value observed at root 0.9112501,
909 different states were evaluated
34 iterations, with 67 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.73125005,
912 different states were evaluated
34 iterations, with 69 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 2:
best value observed at root 0.6712501,
794 different states were evaluated
22 iterations, with 43 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.68000007,
803 different states were evaluated
20 iterations, with 55 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.6575,
875 different states were evaluated
23 iterations, with 50 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 0.87125003,
920 different states were evaluated
22 iterations, with 60 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.90250015,
1043 different states were evaluated
26 iterations, with 70 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 1.15625,
1223 different states were evaluated
32 iterations, with 98 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.8962499,
1111 different states were evaluated
44 iterations, with 88 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 0.9849999,
1272 different states were evaluated
51 iterations, with 108 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 1.2962499,
1107 different states were evaluated
26 iterations, with 66 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 1.0362499,
1006 different states were evaluated
32 iterations, with 65 calls of minimax
Alpha-Beta (player 2) completed search of depth 1.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 1.7525,
1297 different states were evaluated
35 iterations, with 100 calls of minimax
Alpha-Beta (player 2) completed search of depth 2.
UBFM (player 1) completed an analysis that reached at some point a depth of 5:
best value observed at root 1.6012498,
1267 different states were evaluated
49 iterations, with 187 calls of minimax
Alpha-Beta (player 2) completed search of depth 3.
UBFM (player 1) completed an analysis that reached at some point a depth of 3:
best value observed at root 1.68125,
1304 different states were evaluated
41 iterations, with 99 calls of minimax
Alpha-Beta (player 2) completed search of depth 3.
UBFM (player 1) completed an analysis that reached at some point a depth of 9:
best value observed at root 1.6675,
1278 different states were evaluated
101 iterations, with 398 calls of minimax
Alpha-Beta (player 2) completed search of depth 3.
UBFM (player 1) completed an analysis that reached at some point a depth of 7:
best value observed at root 1.5674999,
1288 different states were evaluated
107 iterations, with 429 calls of minimax
Alpha-Beta (player 2) completed search of depth 3.
UBFM (player 1) completed an analysis that reached at some point a depth of 5:
best value observed at root 1000000.0,
954 different states were evaluated
323 iterations, with 1225 calls of minimax
Alpha-Beta (player 2) completed search of depth 0.
UBFM (player 1) completed an analysis that reached at some point a depth of 4:
best value observed at root 1000000.0,
1237 different states were evaluated
753 iterations, with 1541 calls of minimax
Here is the game:
- (Move E2-E4)
- (Move E7-E5)
- (Move D1-H5)
- (Move D8-H4)
- (Remove H4)
- (Move G7-G5)
- (Remove G5)
- (Move D7-D5)
- (Move F1-B5)
- (Move C7-C6)
- (Remove E5)
- (Move E8-D8)
- (Move E5-G5)
- (Move D8-C7)
- (Move G5-E5)
- (Move C7-B6)
- (Move B5-E2)
- (Move C8-G4)
- (Remove G4)
- (Move B8-D7)
- (Remove D7)
- (Move B6-A6)
- (Move G1-E2)
- (Move F8-B4)
- (Move B2-B3)
- (Move F7-F5)
- (Move A2-A3)
- (Move B4-C5)
- (Move A1-A2)
- (Move G8-F6)
- (Move C1-B2)
- (Remove F2)
- (Move E1-D1)
- (Remove D7)
- (Remove F5)
- (Move H8-G8)
- (Remove F2)
- (Move D5-D4)
- (Remove D4)
- (Move D7-C5)
- (Remove C5)
- (Move A8-D8)
- (Move B3-B4)
- (Move B7-B5)
- (Move D1-C1)
- (Move D8-D7)
- (Move F2-F6)
- (Move A6-B7)
- (Move H1-D1)
- (Move D7-D4)
- (Remove D4)
- (Remove G2)
- (Move F6-F7)
- (Move B7-C8)
- (Move D1-F1)
- (Remove E2)
- (Move F7-G8)
- (Move C8-D7)
- (Move F1-F7)
- (Move D7-D6)
- (Move G8-D8)
- (Move D6-E6)
- (Move F7-F6)
At 1sec per move, Ludii (as White) beat Flat MC (as Black) in 99 moves:
- (Move E2-E4)
- (Move C7-C6)
- (Move D1-H5)
- (Move D8-C7)
- (Move F2-F4)
- (Move D7-D5)
- (Move F1-A6)
- (Move C8-E6)
- (Move A2-A4)
- (Move E6-C8)
- (Move D2-D4)
- (Remove E4)
- (Move B2-B4)
- (Move E7-E6)
- (Move B1-C3)
- (Move G8-H6)
- (Move C1-B2)
- (Move F8-E7)
- (Remove F7)
- (Remove F7)
- (Move A6-C4)
- (Remove B4)
- (Move E1-E2)
- (Move F7-H6)
- (Move G1-H3)
- (Move E8-D8)
- (Move A4-A5)
- (Move C7-B6)
- (Remove B6)
- (Move D8-E8)
- (Remove E4)
- (Move A7-A6)
- (Move H3-G5)
- (Move G7-G6)
- (Move E4-F6)
- (Move E8-F8)
- (Move A1-A3)
- (Move H8-G8)
- (Move H1-D1)
- (Move A8-A7)
- (Move H2-H4)
- (Move B4-E7)
- (Remove H7)
- (Move F8-G7)
- (Move A3-A5)
- (Move H6-G4)
- (Remove G4)
- (Move E7-D8)
- (Move D1-F1)
- (Move G7-F7)
- (Move G4-H6)
- (Move F7-G7)
- (Remove G8)
- (Move G7-F7)
- (Move G8-H6)
- (Move F7-E7)
- (Move H6-G8)
- (Move E7-F7)
- (Move H7-F8)
- (Move D8-F6)
- (Remove F6)
- (Move A7-A8)
- (Move F8-H7)
- (Move C6-C5)
- (Move E2-F2)
- (Move G6-G5)
- (Move F1-G1)
- (Move C8-D7)
- (Move G2-G4)
- (Move D7-E8)
- (Move A5-A3)
- (Move E8-D7)
- (Move F6-E4)
- (Move D7-C6)
- (Remove G5)
- (Move F7-E8)
- (Move D4-D5)
- (Remove D5)
- (Move G1-H1)
- (Move B8-C6)
- (Move H4-H5)
- (Move E8-D8)
- (Move G5-F7)
- (Move D8-D7)
- (Remove C5)
- (Move D7-C8)
- (Move F7-D6)
- (Move C8-D8)
- (Move B2-F6)
- (Move C6-E7)
- (Remove D5)
- (Move A8-C8)
- (Remove C8)
- (Move A6-A5)
- (Move C8-D6)
- (Remove D5)
- (Move H1-E1)
- (Move D5-D4)
- (Remove E7)
Ludii as White beat Random as Black in even fewer moves:
- (Move E2-E4)
- (Move G8-H6)
- (Move F1-C4)
- (Move H6-G8)
- (Remove F7)
- (Remove F7)
- (Move D1-H5)
- (Move F7-E6)
- (Move H5-F5)
- (Move E6-D6)
- (Move F5-D5)
There is also an alpha-beta ai which is stronger for some games
I just ran a game between Ludii as White and Alpha-Beta as Black at 1sec each, and Ludii quickly won. Here's what it reported the moves to be:
- (Move E2-E4)
- (Move E7-E5)
- (Move F1-B5)
- (Move D8-H4)
- (Move D2-D4)
- (Move F8-B4)
- (Move B1-D2)
- (Remove F2)
- (Remove F2)
- (Remove D2)
- (Remove D2)
- (Move B8-C6)
- (Move D1-H5)
- (Remove D4)
- (Remove E5)
- (Move G8-E7)
- (Remove D4)
- (Move E7-D5)
- (Remove D5)
- (Move C7-C5)
- (Move D4-E5)
- (Move E8-F8)
- (Move G1-F3)
- (Move D7-D6)
- (Move E5-E8)
Since I figured out how to make the Ludii Player show the last move, I decided to try one more game with it set to its maximum thinking time of 300 seconds, which is 5 minutes. As before, it moved out its Queen and let it get chased around a bit. Overall, it played very poorly, and it was checkmated in 32 moves, making this game even shorter than previous games with less thinking time for Ludii. In the endgame, it seemed to just give up, letting checkmate come even more quickly than it had to. Based on this, I would conclude that Ludii is not nearly as good at playing Chess variants as the Interactive Diagram is. And since that is itself a low bar, my conclusion is that Ludii is not very good for Chess variants. Here's the game:
- d4 e6
- c3 Qh4
- Nf3 Qe4
- Nbd2 Qd5
- e4 Qh5
- Bc4 b5
- Bd3 Qg4
- O-O Nc6
- Bxb5 Bb4
- cxb4 Nge7
- h3 Qf4
- g3 Qd6
- Nc4 Qxb4
- Qb3 O-O
- Qxb4 Nxb4
- Bf4 Bb7
- Nfd2 Kh8
- Bxd7 Rad8
- Ne5 f6
- Bxe6 fxe5
- Bxe5 Nd3
- Bxc7 Rxd4
- Ba5 Bc6
- Bc3 Ra4
- Bb3 Nd5
- exd5 Rf5
- dxc6 Rg5
- Bxa4 Rh5
- h4 Ne5
- Bb4 Rh6
- c7 Rh5
- c8=Q
Are there any further issues that need to be addressed with this before it can be published?
Its boards are having the same problems as in your other game. They are too large, and when they resize to fit the screen, the rank and file markers are too small. Perhaps you have a 4k monitor, but I have an HD monitor, and I expect HD monitors are still more common. On an HD monitor, the maximum screen height is 1080 pixels, and a height of 3025 pixels is overkill. Actually, it's overkill even in 4k, since its maximum height is 2160 in landscape. But if you have a 4k monitor in a portrait orientation, you could view a whole board image without resizing it.
Which ai are you using in ludii?
Ludii.
Thank you for making the needed adjustments to the size of the board files!
I didn't adjust the size of the files. I just added CSS to display them at a size that will fit the screen.
For the next game, I gave the Ludii player 30 seconds of thinking time. It still played very poorly, making lots of obviously bad moves. The Interactive Diagram made sensible moves for most of the game, but during the endgame, it failed to mobilize its overwhelmingly superior forces for checkmate. It could have easily gotten checkmate by moving out a Rook to help the Queen, but instead it moved out its King. When it was getting close to further hemming in the King and eventually getting checkmate, it moved its Queen to a rank further from the King, giving it more space to move. Eventually, the game ended in a draw through three-times repetition, which I estimated by observing the same set of four moves repeat three times. Here are the moves:
- d4 e6
- c3 Qh4
- Nf3 Qe4
- Nbd2 Qf4
- Nb3 Qe4
- Nc5 Bxc5
- dxc5 d6
- cxd6 Bd7
- dxc7 Ne7
- cxb8=Q Rxb8
- Be3 O-O
- Qxd7 Qc4
- Qxe7 Rbd8
- Qxb7 Rd6
- Qxa7 e5
- Nxe5 Qh4
- g3 Qe7
- Qxe7 Rd5
- Bg2 Rxe5
- Qxe5 Rd8
- O-O h6
- h4 h5
- Qxh5 f6
- Bd5 Rxd5
- Qxd5 Kh7
- Qh5 Kg8
- Kg2 Kf8
- Kf3 g6
- Qxg6 Ke7
- Bc5 Kd8
- Ke4 Kc7
- Qxf6 Kb8
- Kd5 Kc8
- Qf5 Kc7
- Qf4 Kc8
- Qf5 Kc7
- Qf4 Kc8
- Qf5 Kc7
- Qf4 Kc8
- Qf5
In the previous game, the Ludii player had 1 second of thinking time. I next tried it with 5 seconds, but when it was about to throw away a Queen, I started a new game with 10 seconds of thinking time for it. The Interactive Diagram played in Edge with its default settings. In the start of the game, Ludii moved out its Queen as it had done at 5 seconds, but instead of throwing it away, it fled from attacks, letting its Queen get chased around. But it eventually began to lose material, and by the endgame, it had only the King left. The Interactive Diagram eventually defeated it with checkmate. Here is the game:
- d4 e6
- c3 Qh4
- Nf3 Qe4
- Nbd2 Qf4
- Nb3 Qe4
- Nc5 Bxc5
- dxc5 Kf8
- Qd4 Qxd4
- Nxd4 Nf6
- Bf4 Ke8
- Bxc7 Ne4
- Be5 d6
- Bxg7 e5
- Bxh8 exd4
- cxd4 Bg4
- cxd6 Nd7
- h3 Be6
- e3 Rc8
- Bd3 f6
- Bxe4 Bf7
- Bxb7 Rc2
- b3 Be6
- O-O Kf7
- Be4 Rb2
- Bxh7 Bd5
- Bf5 Rd2
- Bxd7 Bxg2
- Kxg2 Re2
- Kf3 Rd2
- Bf5 Rb2
- Ke4 Rc2
- Kd3 Rc6
- d7 a6
- d8=Q Re6
- Bxe6 Kxe6
- Qxf6 Kd7
- Qxa6 Kc7
- Be5 Kd7
- Qb5 Ke7
- Ke4 Kf7
- Qd5 Kg6
- Qg8 Kh5
- Qg4 Kh6
- Kf5 Kh7
- Qg6
I downloaded the Ludii player to my computer and ran a game against the Interactive Diagram at its default settings. This time, the Interactive Diagram quickly won with checkmate. I wonder if it makes a difference that I was using Edge instead of Firefox, given that I keep Firefox loaded with tabs, and I always start Edge fresh with no old tabs open.
- d4 e5
- dxe5 Qg5
- Bxg5 Bb4
- c3 f6
- exf6 Bxc3
- Nxc3 d5
- fxg7 h6
- gxh8=Q Nc6
- Qxg8 Kd7
- Qdxd5
Since the Ludii player allows me to adjust the thinking time, I will see if additional thinking time will allow it to defeat the Interactive Diagram.
This is now published. I moved your information on the Archbishop and other names for the piece to the proper piece, and I added STYLE="max-height: 90vh" to your new board images. Your board images were still too large, but when I reduced them in size to fit the screen, the rank and file markers remained legible, not only on my desktop but also on my 7 inch Fire tablet in landscape. Since 1vh is 1% of the viewport height, 90vh is a good height for allowing the whole image to be seen. I kept it below 100vh in case some of the full height would be used by other stuff on the screen.
I saved the PDF on the Ludii language to my Kindle DX to review later.
For the board images, I replaced style="height:1266px; width:1200px" with STYLE="max-height: 90vh;", because the images were too large for the screen, and they would not resize properly when I reduced the window size. They now fit comfortably on my screen, but the rank and file markers appear very small. So, I would recommend making new images that are small enough to fit an HD screen while having rank and file markers large enough to read.
For another test, I raised how many plies the Interactive Diagram thinks ahead to 4. But while trying to get Ludii to play White, it started playing itself. Since I wanted to see if it could press an advantage in the endgame, I let it continue. Eventually, Black checkmated White. I then ran the planned game with the Interactive Diagram at 4 plies, letting Ludii move first. The Interactive Diagram won this game with checkmate without repeating moves. Here are the moves:
- e4 e5
- Qh5 d6
- Bb5 c6
- b4 cxb5
- d4 Nf6
- Qxf7 Kxf7
- Ne2 Nxe4
- d5 Na6
- Bh6 Nxb4
- Be3 Nxc2
- Kf1 Nxa1
- Bg5 Qxg5
- Nf4 Qxf4
- f3 Qc1
- Ke2 Qxh1
- fxe4 Qxb1
- Ke3 Qxa2
- h3 Qxg2
- h4 Qh3
- Kd2 Qxh4
- Kc3 Qxe4
- Kb2 Nc2
- Kc3 Bf5
- Kb2 Qxd5
- Kc1 Qd4
- Kb1 Qa1
Since the Java Applet had failed to defeat Ludii at Chess, I conducted another game between the Interactive Diagram for Chess and Ludii. This time, I let Ludii play White to give it the first move advantage. Like in previous games, it threw away its material. However, the Interactive Diagram had trouble pressing its advantage in the endgame, continually checking the King with its Queen instead of bringing in other pieces to support the Queen. Since the Interactive Diagram kept track of the moves, I eventually spotted a three-times repetition, which made the game a draw.
- e3 d5
- Bb5 c6
- Qh5 cxb5
- d3 Nf6
- Nc3 Nxh5
- b4 Nc6
- e4 Nxb4
- h4 Nxc2
- Kd2 Nxa1
- Rh3 Bxh3
- a3 dxe4
- Nxe4 Qa5
- Ke2 Bxg2
- Nd6 exd6
- Bg5 Qxa3
- f3 Nb3
- Nh3 Bxh3
- f4 Nc1
- Kf2 Nxd3
- Ke2 Ndxf4
- Kd1 Kd7
- Kd2 Qd3
- Kc1 Kc6
- Kb2 Qd4
- Kb3 Be6
- Kc2 Bf5
- Kb3 Qc4
- Kb2 Qb4
- Ka2 Qc4
- Kb2 Qb4
- Ka2 Qc4
- Kb2 Qb4
- Ka2 Qc4
- Kb2 Qb4
- Ka2 Qc4
- Kb2 Qb4
- Ka2 Qc4
- Kb2 Qb4
- Ka2 Qc4
As a further test, I conducted a game of Chess between Ludii and Ed Friedlander's Chess applet. The Chess applet did better for most of the game, scooping up lots of material, but it had trouble pressing its advantage in the endgame. It kept on checking the King with its Queen without bringing in more material. The Java Applet declared itself the winner, but it reset the board before reaching checkmate, and I suspect it was a drawn game by the 50 moves rule. Since neither kept track of the moves, I'm not sure how many moves went by in pointless checks.
Since a Shogi variant might introduce complexities into the game that could make the AI play more poorly, I tried a game of Chess against Ludii. I easily won that game too. It threw away material and rarely captured my pieces.
I played a game of George Dekle's Hexshogi on this website and easily won. For some reason, it never captured any of my pieces, which quickly gave me a huge lead.
Most of the games supported by Jocly don't have individual pages, which is what is being counted here.
I rewrote the Who page to better describe what powers the editorial staff have, and I moved Joe Joyce to a section for Emeritus Editors.
Who is the youngest editor of chessvariants?
Maybe I am.
You're not an editor. You're a contributor. An editor has the power to edit and approve contributions made by other people. Editors are much fewer in number, and among active editors, I believe that Ben is the youngest.
This page is mostly ready. It could use some links to the pages that the preset has a link to. I just played a game online. For my last move, I rolled a 1, a 2, and two 4s. First, I moved the Pawn to the last rank to promote it to a Rook, then I moved it to capture a Rook, and again to capture the last King. It never got any of my Kings, maybe because I was moving them to safety when I could.
Everything is clearly written in the rules
I double checked on that, and it was not true. So, I rewrote your rules to make them clear on the questions I asked you.
May I have your permission to edit the text to include a link to your article on making the hexagonal board?
Yes, you can do that.
How precisely do dice rolls determine what you can move? If you don't move every piece indicated by the dice, can you move more than one piece of another type you rolled? If so, could you even make multiple moves with the same piece? If not, could you make multiple moves with the same piece if more than one die had the same number?
Since there is already an MSshuka, I cannot change it to that. Would you like me to delete MSshoka instead?
Out of their remaining twenty pieces, each player selects and places 16 pieces as they wish in the four spaces orthogonally adjacent to their Marshal, their Cardinal and the Queen (in both directions).
Do you mean multiple pieces on the same space? Or do you mean one piece on each the four closest spaces on each of the ranks and files occupied by the Marshal, Cardinal, and Queen?
Joe,
I don't know the age of every editor, but among those I do, you are the oldest. Hans and I were both born in the 60s, and David was born in the 50s, but you were born in the 40s just a bit before my youngest aunt and uncle. So, thank you for sticking with being an editor here for so long.
Many editors here have not been programmers, because editing is a different task than programming, and non-programmers can also do it. The main advantage that programming can bring to editing is that people with experience programming Chess variants will be more sensitive to gaps, inconsistencies, or ambiguities in the rules of games, as programmers need to understand a game fully in order to program it. But it also comes with the drawback that they may rather spend their time programming than editing. There is a reason why I have chosen the title of Webmaster rather than Editor-in-Chief, as Hans and David had used before me. So, it's good to have editors who are not as focused on programming as some of us are and are willing to take the time to read and edit new submissions.
I don't know that children's game
Maybe it has another name in Dutch. It is an unstructured physical contest in which boys, usually, individually vie against the other boys for control of the top of a hill through unarmed combat. It's well-known enough in English that there was an adult cartoon named after it.
King of the Hill is normally played (e.g. on chess.com or by Fairy-Max) on an 8x8 board.
I expect this is a different game that shares a name and similarities with the game you know, because both are based on the same children's game.
This is similar to something I've done before. I used to print piece images to sticker paper and apply them to poker chips. It would be helpful if you would include some photographs of the finished product and the stages you went through. I've also made a hexagonal board. See Make Your Own 91-Space Hexagonal Board. You can see photos of it in some pages for games that use it.
Based on the information provided on this page, the inventor is misidentified in ChessV.
Since Greg hasn't responded to my earlier question, I went ahead with adding a ChessV tag to games playable on ChessV.
Here are the games on ChessV I did not find a page for here:
- Duplex Chess by Greg Strong
- Gilded Grand Shatranj by Joe Joyce (This is briefly mentioned on the Grand Shatranj page, but the description is too brief, and the Game Courier preset it links to has no landing page, does not describe the rules, and is not programmed to enforce the rules.)
- New Zealand Chess by Unknown
- Nightrider Chess by V. R. Parton (maybe it's in one of his documents, but it doesn't have its own page.)
- Odyssey by Greg Strong
- Opti Chess by Derek Nalls
- Relative Royalty Chess by various
- Unicorn Grand Chess by David Paulowich and Greg Strong
- Warochess by Eric Warolus
- Wild Castle by Unknown
With this complete, I have edited the header to use the ChessV tag to tell whether a game is supported in ChessV, and I have removed the Chessv column from the Item table.
The new preset is allowing Chameleons to capture pawns with diagonal moves.
Okay, that's now fixed.
In How Ai Ai Got its Name, I learned that the significance I thought it could have was completely wrong. It would be a good name for a romance anime about robots, because Ai could mean A.I., as in Artificial Intelligence, or could be a Japanese word for love. But, no, that's not what the name means.
I changed the links to Ai Ai to our link page for it, and I changed tens to dozens, as we don't normally speak of tens of something in English, but we will speak of dozens, and the numbers are close enough together that dozens is likely to be true.
However, dozenal is a neologism in this context. On looking up the word, it describes numbers in base 12, which is not what is meant. I would suggest replacing it.
The new Ultima presets are ready. Since the ones Antoine Fourrière had written were broken, and he is no longer active, I wrote entirely new ones that made use of the fairychess include file. These will display legal moves, and they will display piece names and descriptions in error messages. To test the new code, I replaced his preset with a new one and ran all the old Ultima games with it. Where a game complained about an illegal move, I checked which preset was at fault, and I made corrections in the new one when it was at fault. It turns out that the old preset allowed some illegal moves. In particular, I recall it allowing the King to move into check from a Coordinator. I also noticed that it handled suicide moves as deletions of spaces, which would be appropriate for Chesire Cat Chess or Wormhole Chess. For backwards compatibility, I enabled the substitute Galactic preset to handle deletions as suicide moves. But for the main fairychess preset, which the links on this page now go to, I did not. It will handle suicide moves as incomplete moves that do not include the destination. This is one of the standard ways that Game Courier handles suicide moves, and it works better with the mouse than the other ways do. One last thing is that I changed the notation to use co/CO for the Coordinator and ch/CH for the Chameleon. This should be less confusing than using c/C for the Coordinator and x/X for the Chameleon, especially if you are using the Abstract set, which displays the Chameleon in the form of the letter C. But this is only in the new fairychess preset. To be compatible with old games, the Galactic preset still uses the old notation.
The difficulty I have with that is making the notation work with it, since if I record the extra move, it isn't considered legal in some situations.
To avoid the need to write code for screening out extended moves, Game Courier uses the maxmove
system variable and the ban
and allow
commands. The maxmove
variable indicates how many moves may be made on a single turn. You can use the ban
command to ban many things globally then use the allow
command to make exceptions for certain types of moves at certain places in the extended move.
Okay, I fixed the problem with suicide moves. I was thinking there were only two ways of writing them, but there were three, and by conflating two of these together, I had failed to update one of them to save values for $old
and $moved
when a suicide move is made. Given the multiple ways for writing these moves, I had decided to test for a suicide move by checking whether the moving piece and the last captured piece were the same, but for the full notation way of writing a suicide move, I hadn't done that.
(But in shuffle games you would also have to remember the start position, or at least the random seed used for generating it.)
It normally stores the seed, but when several games of Fischer Random Chess broke because PHP's algorithm for selecting random numbers had changed, I added constants to the language. Since Game Courier is designed for correspondence games, it runs a game from the beginning for each new move. Unlike variables, whose values are determined only by the running of the program and the input fed to it, constant values were stored in logs or $_POST data so that they would be available without re-running the code that originally generated them. The main thing distinguishing a constant is that it's value survives from one run of the program to the next. With that in mind, its value may be changed if necessary, but this is done with a special command, since going along with the way constants work in other languages, a constant is supposed to keep the same value.
I am working on a new Ultima preset, and it's mostly working, but I've hit one snag. While suicide moves of the form "@-e2" are working, suicide moves of the form "P e2-" are making things go haywire, and I would rather use the latter, since they are easier to choose with the mouse. Here are the moves I'll replay tomorrow to continue trying to fix this:
1. P g2-g5
1... p d7-d4
2. P e2-e5
2... x c8-g4
3. L g1-g2
3... x g4-g1
4. X f1-b5
4... p g7-g6
5. P f2-f4
5... p d4-e4
6. P b2-b4
6... x g1-g2
7. W e1-g1
7... x g2-g4
8. C h1-f3
8... p h7-h3
9. C f3-e3
9... x g4-f3
10. K d1-e1
10... i h8-h4
11. X b5-d7 // - Check! -
11... k e8-d7
12. K e1-f1
12... i h4-e1 // - Check! -
13. P e5-g5
13... x f3-e2 // - Check! -
14. P h2-f2
14... p h3-h1 // - Check! -
15. P g5-g1
15... x f8-h6
16. @-d2
16... x h6-h2
17. P c2-e2
17... i e1-d1
As things work right now, it is possible to take back moves, because when you do, it will replay all the canonical moves and skip over the moves that were taken back, recalculating game data as each move is made. But suppose you're evaluating each move only once, using constants to keep track of game information like whether certain pieces have already moved, and someone takes back a move that changed some of the information stored in the constants. You would either have to restore the game data to what it used to be, which could become rather tricky, or give up the ability to take back moves that do change game data.
Here's another issue. My code for evaluating actual moves, which is normally run in the Post-Move sections, includes error messages for various illegal moves, and beyond just saying that the move was illegal, some of them explain what was illegal about it. But the code I use for evaluating potential moves cannot include error messages, because the task is just to check whether there are any legal moves and to make a list of them all.
The (pseudo-)legality might depend on aspects of the game state that were not reversibly updated. Like e.p. or castling rights, side-effect captures of an Ultima Withdrawer or Long Leaper.
That's a good point. Board position is not the only thing affecting the legality of a move. For castling, it has to keep track of whether the King and Rook have moved before, and this is done with flags that change value after a King or Rook moves. If you evaluated each move only once, you would need to use constants to keep track of whether the King or Rook had moved. Since constants normally keep their value, this would have to be done with resetconst
. Back before I added constants to the language, though, this wasn't an option.
I wonder if it would suffice to check the legality of the newest move only.
That's going to depend upon how explicit you make your notation. In Chess, for example, I have long treated castling as a King's move, though I have recently written code for handling it as a two-piece move, and I still treat en passant as just a single Pawn move without explicitly adding the capture to the notation. In Shogi, I handle moving captured pieces off the board and changing their sides automatically without including notation for it.
Another question. Can a Chameleon capture Pawns with a diagonal move? Or, since Pawns move like Rooks, can it capture a Pawn only if it makes an orthogonal move?
In Zillions-of-Games, the Java applet, and the Interactive Diagram, it had to make an orthogonal move. So, I'll assume that's the rule unless it's overruled.
I recreated the same position in Zillions-of-Games, the Interactive Diagram, and Ed Friedlander's Java applet, and in every one of them, the Chameleon could not capture the Long Leaper. I'll assume this is the de facto rule unless Abbott chimes in otherwise.
If you've replaced the Courier with a Dragon Horse and have named it a General, in what sense does the name Courier Chess VIII make any sense?
I have a question about this position. If the piece on f5 were a Long Leaper, it could capture the Long Leaper on c2, and it would capture the Withdrawer on e4 along the way. But since the piece is a Chameleon, can it still move to b1 to capture the Long Leaper on c2? If nothing were on e4, it would be free to. Since it can't capture the Withdrawer by leaping over it, does that block it from being able to capture the Long Leaper? Or could it leap over the Withdrawer without capturing it and capture the Long Leaper on c2?
Computer code certainly shouldn't be at the beginning of the Rules section. If it clarifies the rules in a way that is important, it might be okay to include it in the Notes section with some text describing what it illustrates or in the Rules section with a <DETAILS>
tag. However, you should be able to describe the rules without referring to code, and for readers who are not programmers, it is best that you do so. You shouldn't really include code unless there is some overriding reason to do so.
To answer my question, I looked up the chapter on Ultima in Pritchard's Popular Chess Variants, and he wrote, "An immobilized king can be mated by its rival moving next to it." So, unless Abbott has said differently somewhere, I'll take this as the rule.
Can an immobilized piece still check a King? If not, could a King move up to an immobilized King and checkmate it? I'm asking, because I'm programming it for Game Courier, and I'm getting ready to add code for the Immobilizer.
Note that I recently changed the behavior of where
to return false when a coordinate does not exist. This seemed to make more sense than returning a lone rank or file label, as it sometimes would for a non-existent space. But I guess these lone rank or file labels were less problematic for some code.
There was a similar problem with the King, and I fixed both. The problem was with the functions for ascertaining the range of the piece, which were used only for potential moves. When I tried to make moves, they worked, and what I needed to fix were the NL, nL, KL, and kL functions. Here is an example of what was no longer working:
def NL array where #0 1 2 where #0 2 1 where #0 -1 -2 where #0 -2 -1 where #0 1 -3 where #0 -1 3 where #0 -3 1 where #0 3 -1 where #0 2 -3 where #0 -2 3 where #0 -3 2 where #0 3 -2;
I believe the problem arose if any of these where
clauses returned false instead of a coordinate. To get around that, I replaced the code with this:
def NL aggregate lambda (where #frm #0 #1) ((1 2) (2 1) (-1 -2) (-2 -1) (1 -3) (-1 3) (-3 1) (3 -1) (2 -3) (-2 3) (-3 2) (3 -2)) =frm;
This uses the aggregate function to build an array of non-empty values of the lambda function, and it passes it the same set of values as the previous code did. So, whenever the where
function returns false, it doesn't get added to the array.
No, it's not. You should add a graphic diagram. You can do this with the Diagram Designer.
As an example of how you can handle non-displacement captures, I have been working on a new preset for Ultima today. I'm writing *_MOVE
and *_CHECK
functions as separate functions, and I'm using the main function for a piece to call the appropriate function depending on the value of #movetype
.
If you use your functions for actual moves, as I have been doing so far, you should set movetype
to MOVE
in your Pre-Game code. This will give it a default value when you're not in checked
or stalemated
.
I have already written code for the Withdrawer, and you might be able to figure out how to make its capture optional.
There are two main contexts for evaluating the legality of potential moves. One is the normal context of evaluating whether a move from one space to another is legal. In this context, the destination should be the space the piece moves to. The other context is evaluating whether a piece is checking the King. For displacement captures, this simply involves evaluating whether a piece can move to the King's position. So, for non-displacement captures, you will have to simulate a move to the King's position.
The fairychess include file has a mechanism for dealing with these two types of moves. It's not well-documented, but it does come up in the breakdown of the White_Pawn function. If you go to the include file itself and compare the checked
subroutine with the stalemated
subroutine, you will see that each gives a different value to the variable movetype
. The White_Pawn function uses this value to stop the function early when all it has to evaluate is whether it can check the King, since as a divergent piece, some of its powers of movement will not be relevant to this question. Although the Pawn can capture another Pawn by en passant, it cannot capture a King by en passant. So, its ability to capture by non-displacement has no effect on its ability to check a King.
But for a piece that normally captures by non-displacement, you will need to write its move function to account for two types of moves. For moves with the MOVE type, your function should evaluate whether the piece can move to the destination, and it should handle non-displacement captures with the remove
built-in function, just as the Pawn functions do for en passant. For moves with the CHECK type, your function should evaluate whether it can capture a piece on the destination. Since this will be used only for telling whether it is checking a King, you may treat this as a move to the King's space without worrying about moving the piece to another space.
If you use the fairychess include file, you should be able to use its checked
and stalemated
subroutines without writing your own. The main thing you will need to do is write your piece functions to handle two different types of moves.
One thing I fixed was where
, which you're using in your doubleleap
function. I modified it to return false when it calculates a coordinate that doesn't exist, such as an unpaired file or rank marker. However, it didn't fix things for your King.
As I understand how the Catapult and the Skirmisher work from your rules page, they capture by en passant. But in your stalemated
subroutine, you're executing the command move #to #after
after you have executed move #from #to
, and this will move the piece you just moved to #to
to #after
, changing its position on the board from what it should actually be. If these pieces just capture by en passant, then you should just remove the piece on #after instead of moving the capturing piece there.
I didn't see error messages. How would I find those?
It looks like the code was set up to report them only to me. I just changed it to report them to anyone.
You're getting lots of error messages about moves not being well-formed. Let's fix that first, then see if your other problem remains. The error is because these moves do not include the piece label. To make sure that the move is well-formed, you have three options.
- Construct the move in your stalemated subroutine as a string, and pass that string to
setlegal
instead of a pair of coordinates. - Restore the position before using
setlegal
. - Make sure you don't have moves where both coordinates end up empty. From looking at your use of #after in the
stalemated
subroutine, it looks like you might have moves of this sort. So, make sure to do one of the other two.
I would also recommend writing your code to the latest standard, which is the fairychess include file.
Through trial and error I placed a polygon and a circle ahead of the drawing of the Pawn. While it's not a perfect outline of the Pawn, it covers all the interior parts, which is good enough. So, now the Pawn is finally free of bleed-through.
For the Pawn, I took your new Pawn and changed the fill color from #ffffff to #f9f9f9 to make it recolorable, and it is now working without bleed-through. Thanks.
Sorry, no, it's not. I need to get the outline shape of the Pawn and put it ahead of the main drawing of the Pawn in the SVG.
They appeared to have no bleed-through, but they wouldn't recolor. So, I went ahead with what was working. Taking a variation on your suggestion, I was isolating the part of the path that drew the outline and placing it before the path that drew the image with a color of #f9f9f9. This worked for most pieces. For the Ferz, I couldn't isolate the path due to it relying on m
rather than M
too much, as it is easier to isolate segments of a path when it is using absolute values. I tried the same thing with the Pawn, but it didn't work. Instead of drawing an outline and carving out sections, it was drawing the right side as a single path then drawing the left side as a single path. So, I couldn't isolate any part of the path for drawing the outline. At this point, every piece is recoloring without bleed-through except for the Pawn.
You could try copying the black pieces behind the white ones to provide the fill color.
No, that's a kludge I would rather avoid.
Plutonian Test Chess, the Play-Test Applet, the Chekmating Applet.
These now work. By redirecting /page/ URLs to the canonical URLs, I had created a Catch-22 for /page/ URLs that are canonical. I have now built in an exception for them.
It looks like I didn't edit them perfectly. The background color is bleeding through in parts of each piece image.
Since there are two sets of svg images of the Alfonso-X pieces, I downloaded both and compared them. The PyChess files were much larger, and they wouldn't display in Edge or load in Inkscape. The other images came in both black and white, but I needed only the white pieces. But these didn't have a fill color, which would have made recoloring them impossible. I fixed that by loading each one into Inkscape and adding a fill color in the appropriate places. Finally, I had to manually edit some to correct an error that had crept up in using Inkscape. Now that that's all done, I have a set of SVG images for the Alfonso-X set that work with Game Courier or the Diagram Designer and can be recolored. Thanks for the help.
I haven't found any problematic links. Would you name specific pages whose links are not working right?
Thanks for the correction. I suppose I was thinking 13th century and then misapplied the number 13.
While signed in, go to your personal information page and select Upload or Manage Files
from the Edit menu. If it hasn't yet been programmed to accept svg files, put them into a zip file and upload that. I'll then move them to an appropriate location.
In making the diagram below, I discovered a quick and easy method for making bitmap piece images. By printing the black pieces in outline, I can get pieces like the white ones in the diagram, which are anti-aliased to the piece color inside and to a neutral background color (#808080) outside. So, I've already made and uploaded a set of GIFs to use.
Is anyone interested in making an SVG piece set out of the Chess Alfonso-X font? I would like to use them in a redesign of this page with a diagram looking something like this, which I just did in Ultimate Paint, as well as with pieces images.
Alternately, is there anything that would be more authentic for Shatranj?
Let me pass this on to H.G., since he is from the Netherlands and knows Dutch.
The randgame.php script will now send you to a page's canonical URL instead of to a semantic URL with /page/ as the directory. When you do enter an URL with the /page/ directory, it will also send you to the canonical URL for the page, and when there is none, it will run the 404.php script. Note that these are two separate changes, as the randgame.php script will send you straight to the canonical URL without sending you to the /page/ URL first.
I also changed the ItemID for the home page from HomepageofTheChe to Homepage, and I made the appropriate corrections in the database and files where the old ItemID appeared.
Does anyone recognize the Chess set used for the Chess photo on this page? Since my mother picked it up at a yard sale for me, I don't have any information on it. It is a medieval fantasy themed set with Wizards for Bishops and Dragons for Knights. I borrowed the board from another set.
I have picture of my Shatranj board and pieces that may interest you.
I got them from you by email. I uploaded smaller versions and tried them out on a test page, but I don't think I'll use them.
I have now managed to use @container queries to get the logos for game software and web servers to increase in size to fill available space when there is some. This should put the space they take up on par with the preceding images. However, @container queries are a new web technology, and it may not be available on older mobile devices whose OS can no longer be updated. For desktops, though, you should be able to run a browser capable of handling them. For example, @container queries do not work on my iPad 2, and in landscape mode, the logos show up in a 3/3/2 pattern instead of 2/2/2/2.
We don't have a PM system in place. To upload it, you can go to your personal information page, then select "Upload or Manage Files" from the Edit menu. I believe you're familiar with how that works from uploading images for your pages.
It is not clear that the photographs or program logos can be clicket to navigate somewhere; the fact that the page is full of recognizable links creates the impression that navigation should occur through those.
I created new buttonized images of each logo.
The photograph for Shatranj / Chaturanga is awful.
I replaced it with a Chess photo.
and the board looks like it has disintegrated into individual squares for no obvious reason.
Since I don't have a Chaturanga board, I made it by laying out individual board tiles. Since these were hand-made, they did not all align up evenly.
The alignment of the images is messy: the images are not of equal size, so that upper-left alignment of the smaller xiangqi images is all wrong.
I took the width and height values off the Xiangqi image, then replaced it with a Janggi image, because its more square shape is less portrait, and that fits better with the other images being more landscape than portrait.
Although there now is a photograph for the 'featured variant', it is not obvious at all what its significance is. The word 'featured' (or better: 'variant of the month') does not appear with it. There is also no link in the accompanying text (like there is for Shatranj/Chaturanga and Xiangqi/Janggi/Shogi), nor a suggestion that the image can be clicked.
I added a line about that with a link in it below the image.
The program logos are all of different size;
I made new ones that are all the same size today, but the uniformity made none of them stand out as much. By being different sizes, they all stood out better. So, I reverted to the ones with different sizes.
- Later on, I used a mix of resized logos and old ones to make each line the same length when there are four lines, but without making each logo the same width. This gave them a staggered but justified look.
- After increasing the width of your idiagram logo, I recolored the white part to better show the beveled edges.
Depending on the display/window width, the four topics with an image either display as 4x1, 2x2 or 3+1. In the first two cases the program logos are tiled to approximately the sam size as one of the other images (which is OK), but in the latter case they are displayed side by side, and because that doesn't fit, displayed as rows of 6 + 2 (messy).
I tried using flexboxes to get the one alternative I would consider better, but I couldn't get it to work. I wanted to evenly split them on two lines with the logos spread out across the width of the page, but all I could do is split them into 4+4 all on the left side. So, I reverted it back. For now, the logos are grouped into pairs that must be on the same line. That's why you'll get 6+2 instead of 7+1.
- However, I did adjust the
flex-basis
of the DIVs and got some screen sizes where all eight logos appear on a single line. - I later added some synchronized media queries to keep the logos on a single line for the 3+1 pattern by allowing them to resize. On both Firefox and Edge, this seems to work correctly without the logos stacking into a block when three images are above them.
This is now fixed. I made sure it included the settings and theme values in the form.
As a demo for how a ChessV tag could be used, I created and populated a Zillions OTB tag for games that come with Zillions-of-Games, and I added code to add an item to the Play menu for games that come with Zillions-of-Games.
OK but who is "us", what is the process to judge the quality? I fear the boundaries are more than vague here.
I already covered this here.
It is maybe a semantic question. What do you mean by "featured" exactly?
I already answered this here.
Is that "having distinctive aspects", "having something special" which is rather neutral, or is that bearing some positive appreciation, meaning that this game is better than others?
None of those. See my earlier answer to your question. However, there are criteria that a game must pass before being featured. These are described on this page.
Since where can take two or three arguments, it will take three if it finds three. So, where #0 n where #0 e; is treating the value of where #0 e as an argument for the leftmost where. Try this instead:
print aggregate lambda (where #frm #0) (n e) =frm;
Greg,
It appears your site doesn't support https. An easy way to fix this is to use CloudFlare for your DNS, as this site does. I have a free CloudFlare account that lets me use flexible SSL/TLS for free without hosting any files on this site.
Also, do you think it would be better to use a ChessV tag for games supported by ChessV? I created a column in the Item table for you to mark games supported by ChessV, but you haven't been doing that. I just marked Cylindrical Chess as supported by ChessV, and now the Play menu lists it as playable on ChessV.
100 comments displayed
Permalink to the exact comments currently displayed.
Since there were no text files for this game providing credits, I am presuming the author is H. G. Muller, because this game did not originally come with Jocly, and I copied the Jocly files from his site at one time.