Classes of chess pieces for chess variants

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

HGM, in continuing to discuss my attempt to create a dozen classes for chess pieces to use with my chess Action cards, you had indicated earlier that my values were much too high. I agree. I know that the more dynamic nature of the CirSquare board, the 'fork in the road' aspect of the 4 triangular shaped spaces, and the ability to attack the opponent's castle from 3 directions increase the power of the major pieces. But I think Zillions goes overboard with the increases. Maybe cutting the Zillions values in half (except for the Pawns) will create values that are more realistic.

In the attached tables, the table on the right side is my list of classes with some of the Zillions values slightly modified. The table on the left shows all the same number of classes but with the piece value ranges cut in half and the piece values cut in half and rounded up. Do the piece values in that table look more in line with other chess engines? Is 18+ a good cutoff point for the most powerful chess pieces?

The main thing that want to accomplish is (for the CirSquare 96 board) to keep the relative strength values among the various pieces compared to each other realistic. The actual size of the numbers being realistic is less important than having realistic ratios of power among the pieces. Also keeping the class numbers low and the quantity of classes low. I think that 0 through 12 works good. That keeps the number of pieces in each class low (probably 6 to 8 max per class), without being too low.

Thanks
RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

HGM, I tried to drag-and-drop the tables image onto the post, but I got this error: Sorry, the board attachment quota has been reached.

I don't know what that means. How can I correctly add a .jpg file? Do I have to use a different image file type?
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Classes of chess pieces for chess variants

Post by hgm »

It means that you cannot post attachments on this forum. You would have to host the image somewhere else, and then link to it from here.

My WinBoard attempt looks like this:

Image

Since the background basically is a free-form drawing, I suppose I could deform the 'squares' in the corner sections such that the arc intersects the nominal grid point of the squares array, by having what now are straight lines bent outwards. So that pieces there do not stick out of it.
RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

hgm wrote: Tue Jan 07, 2020 7:51 pm It means that you cannot post attachments on this forum. You would have to host the image somewhere else, and then link to it from here.

My WinBoard attempt looks like this:

Image

Since the background basically is a free-form drawing, I suppose I could deform the 'squares' in the corner sections such that the arc intersects the nominal grid point of the squares array, by having what now are straight lines bent outwards. So that pieces there do not stick out of it.
If all the pieces on both sides were moved backwards 1 rank, then they would regain the 4 ranks between the sides. The knights would then move to a position below the bishops, and then the rooks would move to below the knights. Could the spaces that the knights currently sit on could be warped to look a little more like triangles? 4 more pawns could be added so that they occupy all 12 of the spaces on the 4th and 8th ranks. Could a thick line be drawn all the way across the board between the 4th and 5th ranks and the 8th and 9th ranks to represent the castle walls? Then all the moves and rules for Thrones Chess II could be implemented. The moves would work the same as they do on the CirSquare board, even the "triangular" shaped spaces that the Knights occupy in your first diagram, which will be occupied by Pawns when the pieces are moved backward one rank, will be able to act like forks in the road. The board is a much different look, but I can see how it could actually work. I like the looks of the CirSquare board better. A player's eyes can more easily follow long moves on the CirSquare board. How much work would it be make the piece moves work?
RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

Since I can't post an image, here is my revised Classes of Chess Pieces table as text. I divided all the original ZoG values (except the Pawns; Swordsmen and Spearmen are strong Pawns) by 2. Do these values look more realistic for the CirSquare 96 board?

Thrones Chess II-V Piece Values and Classes (1/2 the values of ZoG)
Classes-- Values-- Pieces and Piece Values
Class 0 -- 0-0.9 --

Class 1 -- 1-2 -- Classic Pawns 1; Swordsmen 1.5; Spearmen 2;

Class 2 -- 3 -- Longbowman 3;

Class 3-- 4 -- Classic Bishop 4; Onager 4; Crossbowman 4; Classic Knight 4;

Class 4-- 5 -- Extended Knight 5;

Class 5-- 6 -- Halberdier 6; Wolf 6; Amur Leopard 6;

Class 6-- 7 -- Trebuchet 7; Merlin Hawk 7; Unicorn 7; Elephant 7;

Class 7-- 8-9 -- Classic Rook 8; Falcon Cannon 9

Class 8-- 10-11 -- Archbishop 10; Spider Tower 10; Fortress 10; Chancellor 11;

Class 9-- 12-13 -- Classic Queen 12;

Class 10-- 14-15 --

Class 11-- 16-17 -- Dragon 16

Class 12-- 18+ --

Thanks.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Classes of chess pieces for chess variants

Post by hgm »

The problem is that the pieces must sit on a regular 12 x 12 grid. In the backgrounddrawing the cells can be distorted any way you want, but making a triangle by just connecting the corners it has now by a straight line would make it only contain half of the Knight. I don't think that would really help. I rounded the false corners of the L-shaped cells, to at least make it possible to easily see what 'opposite edge' and 'opposite corner' means for those. This is my second attempt, that has at least every piece entirely contained in the cell it is on:

Image

I already warned that it would suck in WinBoard. It would be possible to move Knight and Rook one file outward, but this would give the file they share with the Bishop a staggered appearence, or very much off-center the pieces if that file is warped in the background drawing to bend outward. So I don't think that is a good idea. But if you have a better suggestion for the background drawing, feel free to have a go at it. The squares WinBoard would center the pieces in are 48x48 pixels internally, with a 1-pixel-wide line separating them.

And don't get too excited yet: I was not planning on doing a full implementation of your game, with cards and all; I just wanted to provide an arena where pieces with the various moves can be pitted against each other on a board with this topology, to determine their values.

For implementing the moves in Fairy-Max I would have to make tables of all the slider paths as lists of squares they visit, and it seems this must mostly be done by hand. The main challenge is to do it without any errors. Fairy-Max internally uses a linearized 16x16 board, so the way it numbers the squares would be like

Code: Select all

 0           4  5  6  7          11
   17       20 21 22 23       26
      34    36 37 38 39    41
         51 52 53 54 55 57
64 65 66 67 68 69 70 71 72 73 74 75
80 81 82 83 84 85 86 87 88 89 80 91
...
and I would have to make lists of those numbers like

Code: Select all

// orthogonal
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, -1,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91, -1,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  64,  75, -1,
// race tracks
 64,  80,  96, 112, 176, 180, 181, 182, 183, 187, 123, 107, 91, 75, 11, 7, 6, 5, 4, 0,
 64,  80,  96, 112, 176, 180, 181, 182, 183, 187, 123, 107, 91, 75, 11,  7,  6,  5,  4, -1,
 65,  81,  97, 113, 161, 164, 165, 166, 167, 170, 122, 106, 90, 74, 26, 23, 22, 21, 20, 17,
 66,  82,  98, 114, 146, 148, 149, 150, 151, 153, 121, 105, 89, 73, 41, 39, 38, 37, 36, 34,
// forks
// diags
 64,  81,  98, 115, 132, 149, 166, 183, -1,
// doubly-bent
 96, 113, 146, 132, 117, 102,  87,  72,  41,  23,  6, -1,
112, 161, 148, 133, 118, 103,  88,  73,  26,   7, -1,
176, 164, 149, 134, 119, 104,  89,  74,  11,  -1,

RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

HGM, you are a programming genius! Beautiful job, even though it looks really 'funky', it works beautifully visually. The real work is going to be as you said a lot of perfect hand creation of the movement tables. The moves are going to be tricky through the four 16 square corner areas of the board.

For instance, the Knight that sits on e2 can legally move to a5 and c5; likewise, the Knight on h2 can legally move to j5 and l5. Those moves cover orthogonally (on the invisible 12x12 grid) 3 squares in one direction, a 90 degree turn to move 3 more squares orthogonally, then a 90 turn to move 1 more square orthogonally. I assume those moves will also be accomplished with tables of legal movements.

Don't even consider the Action cards. At this time, I am only thinking about Thrones Chess II, which does not use anything but chess pieces and the chess board. Computer versions of Thrones Chess III, IV, and V will be after the Kickstarter and will probably have a Kickstarter(s) of their own. Those computer games are going to require a lot more work, especially Thrones Chess IV and V.

If you think I could be any help in creating the tables and/or testing to verify that all the moves work properly, I would be more than happy to help.

Thank you so much!
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Classes of chess pieces for chess variants

Post by Ovyron »

hgm wrote: Mon Jan 06, 2020 9:47 pm But as an interface for a game on a CirSquare board WinBoard would suck even compared to Zillions: the board would have to be mapped on a conventional grid board (e.g. 12x12), where you would skip some of the squares. For automated engine-engine play you would not care about that at all, but for human-engine games it would probably be unacceptable.
It actually looks very nice.
RichV
Posts: 53
Joined: Sun Apr 14, 2019 5:33 pm
Full name: Rich VanDeventer

Re: Classes of chess pieces for chess variants

Post by RichV »

HGM, Will Fairy-Max be able to handle the mixed possible moves for the Archer, Catapult, and extended Knight? They have some moves that are capture moves and some that are only repositioning (non-capture) moves. The Archer (diagonal moves) and Catapult (orthogonal moves) move 1, 2, or 3 spaces but only capture on the second space. The extended Knight moves like a Unicorn, but does not capture on the longer move. I felt the Unicorn was too powerful for the default set for Thrones Chess II and the classic Knight was too weak. But as the nursery rhyme goes, the extended Knight is just right :D , allowing the Knight to attack the center of the board in one move like in classic chess.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Classes of chess pieces for chess variants

Post by hgm »

Sure, this is no problem. Fairy-Max can do 'divergent' pieces. Next to ordinary sliding and leaping moves it can do hoppers (like the Xiangqi Cannon, which also happens to be divergent). It can also do sliders of range 2, 3 or 4, or bent sliders like the Gryphon, or lame leapers (like the Xiangqi Elephant and Horse). Or hoppers with trajectories that bend at the mount ('bifurcators').

I decided to generate the trajectory tables partly automatically; that is, each trajectory I specify by hand can be translated automatically into a trajectory that runs in the opposite direction, or one that is rotated by 90, 180 or 270 degrees. So that I get 8 for the price of 1. I already tested this for the straight orthogonal trajectories: after specifying the two essentially different ones and adding each of those in 8 orientations, the move table looks like

Code: Select all

  1:  81  82  83  84  85  86  87  88  89  90  91  -1
 13:  90  89  88  87  86  85  84  83  82  81  80  -1
 25: 106 105 104 103 102 101 100  99  98  97  96  -1
 37:  97  98  99 100 101 102 103 104 105 106 107  -1
 49:  65  66  67  68  69  70  71  72  73  74  75  -1
 61:  74  73  72  71  70  69  68  67  66  65  64  -1
 73: 122 121 120 119 118 117 116 115 114 113 112  -1
 85: 113 114 115 116 117 118 119 120 121 122 123  -1
 97: 165 149 133 117 101  85  69  53  37  21   5  -1
109:  21  37  53  69  85 101 117 133 149 165 181  -1
121:  22  38  54  70  86 102 118 134 150 166 182  -1
133: 166 150 134 118 102  86  70  54  38  22   6  -1
145: 164 148 132 116 100  84  68  52  36  20   4  -1
157:  20  36  52  68  84 100 116 132 148 164 180  -1
169:  23  39  55  71  87 103 119 135 151 167 183  -1
181: 167 151 135 119 103  87  71  55  39  23   7  -1
193:

   0   0   0   0 157 109 121 169   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 155 107 122 170   0   0   0   0
   0   0   0   0 158 110 143 191   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 154 106 123 171   0   0   0   0
   0   0   0   0 159 111 142 190   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 153 105 124 172   0   0   0   0
   0   0   0   0 160 112 141 189   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

  49  50  51  52  53  54  55  56  57  58  59  61
   0  71  70  69  68  67  66  65  64  63  62   0
   0   0   0   0 152 104 125 173   0   0   0   0
   0   0   0   0 161 113 140 188   0   0   0   0

   1   2   3   4   5   6   7   8   9  10  11  13
   0  23  22  21  20  19  18  17  16  15  14   0
   0   0   0   0 151 103 126 174   0   0   0   0
   0   0   0   0 162 114 139 187   0   0   0   0

  37  35  34  33  32  31  30  29  28  27  26  25
   0  38  39  40  41  42  43  44  45  46  47   0
   0   0   0   0 150 102 127 175   0   0   0   0
   0   0   0   0 163 115 138 186   0   0   0   0

  85  83  82  81  80  79  78  77  76  75  74  73
   0  86  87  88  89  90  91  92  93  94  95   0
   0   0   0   0 149 101 128 176   0   0   0   0
   0   0   0   0 164 116 137 185   0   0   0   0

   0   0   0   0 148 100 129 177   0   0   0   0
   0   0   0   0 165 117 136 184   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 147  99 130 178   0   0   0   0
   0   0   0   0 166 118 135 183   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 146  98 131 179   0   0   0   0
   0   0   0   0 167 119 134 182   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0

   0   0   0   0 145  97 133 181   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
The 4 numbers above each other in the lower table specify the start index of the four trajectories emanating from the corresponding square in the (upper) table of square numbers.