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 Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Later Reverse Order EarlierEarliest
The birth of 3 new variants - part 1 : Grand Apothecary Chess Alert[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Tue, Jun 22, 2021 02:01 PM UTC in reply to Aurelian Florea from Fri Jun 4 01:33 PM:

According to the comments preceding the castle subroutine, you need to flag the spaces of pieces that may legally castle. The subroutine does not care what the pieces are. If you flag both the rook and the cannon, it will, once other conditions pertain, initially allow castling with the rook, but if the rook moves out of the way, it will allow castling with the cannon.


Aurelian Florea wrote on Tue, Jun 22, 2021 06:05 AM UTC in reply to Fergus Duniho from Mon Jun 21 11:04 PM:

I don't understand your question, Fergus. I think I have explained it above.


🕸Fergus Duniho wrote on Mon, Jun 21, 2021 11:04 PM UTC in reply to Aurelian Florea from Fri Jun 4 01:33 PM:

A third thing if I may ask in these game the king may castle in 2 ways with the rook that starts near the corner of the board or with the corner cannon. Omega chess implements a castle move with a non corner piece. Can I combine this with the regular castling subroutine in order to easily make my castle subroutine work?

What castling rule do you want it to work for?


🕸Fergus Duniho wrote on Mon, Jun 21, 2021 10:53 PM UTC in reply to Aurelian Florea from Sat Jun 19 04:00 PM:

Could you find the time to also solve for berolina pawns the problem that regular pawns used to have in fairychess.txt

Okay, I've done that.


Aurelian Florea wrote on Sat, Jun 19, 2021 04:00 PM UTC in reply to Fergus Duniho from Wed Jun 16 06:47 PM:

@Fergus,

Could you find the time to also solve for berolina pawns the problem that regular pawns used to have in fairychess.txt


Aurelian Florea wrote on Wed, Jun 16, 2021 06:54 PM UTC in reply to Fergus Duniho from 06:47 PM:

Thank you!


🕸Fergus Duniho wrote on Wed, Jun 16, 2021 06:47 PM UTC in reply to Aurelian Florea from 04:30 PM:

I can't figure it why but I have a green background and a blue highlight.

At some point, I started using highlight color instead. I included this in the form players could use to customize the appearance of a game, but I neglected to add it to the Edit form used by game designers. I have now added it in.


Aurelian Florea wrote on Wed, Jun 16, 2021 04:30 PM UTC in reply to Fergus Duniho from 03:14 PM:

I can't figure it why but I have a green background and a blue highlight. Look here, please:

https://www.chessvariants.com/play/pbm/play.php?game=Grand+Apothecary+Chess+1&settings=Default


🕸Fergus Duniho wrote on Wed, Jun 16, 2021 03:14 PM UTC in reply to Aurelian Florea from Thu Jun 3 04:29 AM:

Fergus, What about the ability of changing the blue color of the highlighting when showing possible moves.

It uses the border color to highlight possible moves.


Aurelian Florea wrote on Wed, Jun 16, 2021 11:44 AM UTC:

@Fergus, Hello,

I had asked 3 questions on this thread 2 weeks ago. It seems that you have missed them. Can you find time to take a look?


Aurelian Florea wrote on Fri, Jun 4, 2021 01:33 PM UTC:

@Fergus, A third thing if I may ask in these game the king may castle in 2 ways with the rook that starts near the corner of the board or with the corner cannon. Omega chess implements a castle move with a non corner piece. Can I combine this with the regular castling subroutine in order to easily make my castle subroutine work?


Aurelian Florea wrote on Thu, Jun 3, 2021 11:32 AM UTC:

@Fergus, I think the berolina pawns have the same problem that the regular pawns had!


Aurelian Florea wrote on Thu, Jun 3, 2021 04:29 AM UTC:

Fergus, What about the ability of changing the blue color of the highlighting when showing possible moves.


🕸Fergus Duniho wrote on Wed, Jun 2, 2021 09:10 PM UTC in reply to Aurelian Florea from 07:33 AM:

You were correct in identifying the problem. The range functions for the Pawns did not take into account the value of fps. However, replacing 2 with fps would not allow for first Pawn moves that are shorter than the maximum possible distance. For example, if fps were set to 3, this would include 3-space moves, but it would not include 2-space moves. This is what I ended up with:

def White_Pawn-Range mergeall where #ori -1 1 where #ori 1 1 filter lambda (onboard #1) aggregate lambda (where #ori 0 #0) range 1 var fps =ori;
def Black_Pawn-Range mergeall where #ori -1 -1 where #ori 1 -1 filter lambda (onboard #1) aggregate lambda (where #ori 0 neg #0) range 1 var fps =ori;

These use aggregate to create an array of spaces a Pawn may advance forward to, and they use filter to weed out non-spaces that are out-of-range. They use a named parameter in order to use its value in the lambda function used by aggregate.

I have since modified the functions above to use the filter on all results:

def White_Pawn-Range filter lambda (onboard #1) mergeall where #ori -1 1 where #ori 1 1 aggregate lambda (where #ori 0 #0) range 1 var fps =ori;
def Black_Pawn-Range filter lambda (onboard #1) mergeall where #ori -1 -1 where #ori 1 -1 aggregate lambda (where #ori 0 neg #0) range 1 var fps =ori;

Finally, I replaced aggregate with an expanded version of the values operator. With a lambda function and an array, it will work just like filter except that it returns a sequential array of each value calculated by the lambda function. Unlike aggregate, it will include values of zero, because it does no filtering on the results it calculates. As it did before, it will return the values of an array if that is what's passed to it. If it does not get a lambda function or an array, it will return the rest of the arguments following it as a single array.

def White_Pawn-Range filter lambda (onboard #1) mergeall where #ori -1 1 where #ori 1 1 every lambda (where #ori 0 #1) range 1 var fps =ori;
def Black_Pawn-Range filter lambda (onboard #1) mergeall where #ori -1 -1 where #ori 1 -1 every lambda (where #ori 0 neg #1) range 1 var fps =ori;

Aurelian Florea wrote on Wed, Jun 2, 2021 07:33 AM UTC:

Fergus, Is it not that in the fairy chess include file the functions :

def White_Pawn-Range array where #0 0 2 where #0 0 1 where #0 -1 1 where #0 1 1; def Black_Pawn-Range array where #0 0 -2 where #0 0 -1 where #0 -1 -1 where #0 1 -1;

for generality they should be:

def White_Pawn-Range array where #0 0 var fps where #0 0 1 where #0 -1 1 where #0 1 1; def Black_Pawn-Range array where #0 0 - var fps where #0 0 -1 where #0 -1 -1 where #0 1 -1;

?


Aurelian Florea wrote on Wed, Jun 2, 2021 07:17 AM UTC:

Fergus, is there a way to customize the blue color that highlights possible moves?


Aurelian Florea wrote on Mon, May 31, 2021 05:11 PM UTC:

Thanks!


🕸Fergus Duniho wrote on Mon, May 31, 2021 04:54 PM UTC in reply to Aurelian Florea from 01:31 PM:

I get this error: Syntax Error on line 150

The last expression is 1. In for or foreach, it must evaluate to an array.

You have incorrectly defined your Mortar-Range function as follows:

def Mortar-Range leaps #0 1 1 or rays #0 1 0;

The or operator cannot be used to merge two arrays. It returns a Boolean value. That's why it gave a value of 1 where an array was expected. Use the merge operator to merge two arrays:

def Mortar-Range merge leaps #0 1 1 rays #0 1 0;

Aurelian Florea wrote on Mon, May 31, 2021 01:31 PM UTC:

@Fergus,

I require your help once again.

In the preset below:

https://www.chessvariants.com/play/pbm/play.php?game=Grand+Apothecary+Chess+1&settings=Default&submit=Edit

I get this error: Syntax Error on line 150

The last expression is 1. In for or foreach, it must evaluate to an array.

149 for (from piece) fn friends

150 for to fn join const alias #piece "-Range" #from

151 if fn const alias #piece #from #to and not fn friend space #to and onboard #to

152 move #from #to

153 if isupper #piece

154 if != const alias #piece White_Joker

155 if != const alias #piece White_Pawn

156 set last_type_moved const alias #piece

157 else

158 set last_type_moved Black_Barren_Pawn

159 endif

160 endif

161 elseif != const alias #piece Black_Joker

162 if != const alias #piece Black_Pawn

163 set last_type_moved const alias #piece

164 else

165 set last_type_moved White_Barren_Pawn

166 endif

167 endif

168 if not sub checked cond == #from #kingpos #to #kingpos

169 setlegal #from #to

170 endif

171 endif

172 restore

173 set last_type_moved #ltm

174 next

175 next


H. G. Muller wrote on Sun, Jan 31, 2021 07:28 PM UTC in reply to Aurelian Florea from 01:46 PM:

Sure, the Interactive Diagram can use any piece set, including piece sets supplied by uploading. The Diagram definition created by the Play-Test Applet even uses the Alfaerie set (the anti-aliased one) by default.

This can be controlled by the Diagram parameters grapicsDir, graphicsType, whitePrefix and blackPrefix. These are all text parameters, and the names of the piece images are build from them by concatenating the graphicsDir, a whitePrefix or a blackPrefix, the name of the image as given in the piece-definition lines, a period, and the graphics type. So if you set graphicsDir to the URL of the directory (e.g. /membergraphics/MSelven-chess/ , make sure it ends with / ), the prefixes to w and b, and the graphics type to pgn, jpg, gif, you can use any set of piece images of any type.


Aurelian Florea wrote on Sun, Jan 31, 2021 01:46 PM UTC:

@HG, Can the alfaerie pieces be used (from a different directory of course) by the interactive diagram?


Aurelian Florea wrote on Wed, Jan 27, 2021 06:07 PM UTC:

In the following is what I did for images and names for this game. I had tried a diagram representation. Unfortunately the 50x50 pixels of the images need to be split in a 9x9 grid leaving little room for things to happen in one grid cell. That is because the longest path mover moves 43&41 and some bent riders bend after the 3rd step. The excepting for that is the joker. The joker is represented by a big J. That got me thinking about making instead images with 2 letters from the English alphabet. What do you think about this? Also if you have any suggestion on how to improve the images I'm listening gladly. I am not talented at this nor imaginative.

 Just the bishop.

 The rook.

 The queen.

 The king.

 The pawn.

 The berolina.

The knightrider.

 The chinesse cannon.

 The joker(imitator).

The vulture (a 41&43  falcon).

 The knight of this game(NmL).

 The warlock (WZ).

 The lyon (FDH).

 The osprey bent rider that jumps as a dabbabah and then moves towards outside like a bishop.

Valkyrae-  Vulture and bishop compound

 The unicorn (BNN).

 The Varan (RNN).

The mortar (RpcRF)

Thanks for reading all this! I await your reactions.

 


Aurelian Florea wrote on Tue, Jan 26, 2021 05:41 PM UTC in reply to H. G. Muller from 09:49 AM:

I also would not make the arow you use to indicate sliding too long; it causes too much disparity in the size of symbols, and also makes the symbols for Rooks and Bishops have too little 'body'. Much better to indicate infinite-range sliding by something in the width of the lines. E.g. like making it extra thick.

I have made the arrows long in order to fit all the bend riders I want to build. Look at the next succesions:

and

The reason for the arrows to be that long is that the last 2 bent riders in each lineup should fit. I'm not sure if that is the best solution but it is a first attemp.

Your Knight, Camel and Zebra representations fail the criterion of easy distinction. They are 'topologically similar', and the distinction has to come from carefully examining the distances. It would be much better to indicate smaller distances by making those touch, as touching / non-touching is an absolute difference. 

 If that was the case I would not be able to properly represend the vulture (name you had chosen for the 43&41 falcon - good one).

 

I am considering using a tileset with 2 english letters per picture. Maybe this will make things clearer.

All that because remember I have 0 tallent for this. But I am open to any suggestions.


H. G. Muller wrote on Tue, Jan 26, 2021 09:49 AM UTC in reply to Aurelian Florea from 03:19 AM:

I think movement-diagram-inspired piece symbols can work, when you don't try to reproduce the movement diagram too literally. After all, the purpose of a piece representation in a game position is not to teach a completely unintiated player how the piece moves. Perhaps only to give him a hint for that. But he can be expected to know how these hints are encoded in the shape. The most important is that the shapes are strikingly different. Then the palyer will identify them at first glance, just like he would be able to distinguis the picture of a camel and a horse in a pictorial representation, or the various kanji in an oriental representation. In the end these are all just shapes that have to be distinguished from each other; camel or horse heads mean just as little to a person who has never seen an animal in his life as kanji do to a westerner.

Your Knight, Camel and Zebra representations fail the criterion of easy distinction. They are 'topologically similar', and the distinction has to come from carefully examining the distances. It would be much better to indicate smaller distances by making those touch, as touching / non-touching is an absolute difference. Like:

People that would no longer be able to recognize it as the move diagram can simply memorize "this shape is a Camel, and that shape is a Zebra", which still doesn't make them off any worse then whether they had to memorize which kanji stands for Gold and which for Silver.

I also would not make the arow you use to indicate sliding too long; it causes too much disparity in the size of symbols, and also makes the symbols for Rooks and Bishops have too little 'body'. Much better to indicate infinite-range sliding by something in the width of the lines. E.g. like making it extra thick.


Aurelian Florea wrote on Tue, Jan 26, 2021 03:19 AM UTC in reply to Daniel Zacharias from Mon Jan 25 07:29 PM:

If all your pieces have symmetrical moves, you could just include one direction in the image. Then you wouldn't need so many squares on a grid.

I think this way things will look more ugly. The bishop for example will have the arrows finished at half board!


25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.