The Chess Variant Pages
Custom Search




[ 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

LatestLater Reverse Order EarlierEarliest
This item is a game information page
It belongs to categories: Orthodox chess, 
It was last modified on: 2020-01-30
 By Aurelian  Florea. Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on 2020-06-24 UTC

I implemented 'repeated shuffling' in the diagram now, where the shuffle parameter accepts a comma-separated list of shuffles, which are then performed in order. I also added a new shuffle limitation: a piece prefixed with ':' (colon) will not be shuffled to different shades (like a '!' prefix would do), but to symmetric locations. (Which, on boards with an even number of files, should also have opposit shades.) Better make sure to apply it only to an even number of pieces on a set of symmetrically distributed locations!

I think this should allow you to do the shuffling you want, through a trick: When you shuffle (say) Knights and Bishops with :BN specification, it can only leave them as they were, or swap the N and B on both wings. Otherwise the Bishops would no longer be symmetrically positioned.

So what you can do is start the Bishops in the d- and g-file, and (say) A and C on the b- and i-file, and then shuffle A:BC. This will make the B end up either on d/g or b/i, with 50-50 chance. After that you shuffle B and N (which started on c- and h-file), as :BN, to randomize those while preserving symmetry. Finally you shuffle ACQ without limitations. So the specification would be shuffle=A:BC,:BN,ACQ .


Aurelian Florea wrote on 2020-06-24 UTC

@Fergus,

I have moved the buggy code back to the old testing ground:

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

if flag f2:
if moved == K:
  move $dest $origin; // Temporarily undo King move
  if sub checked $origin:
    if not or checkleap $origin $dest 1 0 checkleap $origin $dest 1 1:
    die A King may not use the special moves out of check.;
  endif;
endif;
  move $origin $dest;
endif;
endif;

The way this goes wrong is that other pieces other than the king are affected by it. Any idea why?


Aurelian Florea wrote on 2020-06-23 UTC
files=10 ranks=12 holdingsType=1 promoZone=3 promoChoice=!P*N*B*C*W*R2*J2*Q1*D1*G1 graphicsDir=../graphics.dir/alfaerie/ whitePrefix=w blackPrefix=b graphicsType=gif squareSize=54 symmetry=mirror shuffle=G:BD,:BN,GDQ hole::::a1,b1,c1,i1,j1,,a12,b12,c12,i12,j12 pawn:p:ifmnDfmWfceF:pawn:a4,b4,c4,d4,e4,f4,g4,h4,i4,j4,,a9,b9,c9,d9,e9,f9,g9,h9,i9,j9 rook::::a2,j2,,a11,j11:1 queen::::e3,,e10:1 bishop:B:B:bishop:d3,g3,,d10,g10 knight:N:NmHmA:knight:c3,h3,,c10,h10:1 wizard:W:FL:mage:d1,g1,,d12,g12 champion:C:WAD:champion:e1,h1,,e12,h12:1 joker:J:fI:fool:f1,,f12 dragon:D:FyafsF:dragon:i3,,i10 griffin:G:WyafsW:gryphon:b3,,b10 king:K:KimbsLimbsN:king:f3,,f10

Aurelian Florea wrote on 2020-06-23 UTC

I removed the buggy code. 

Now it should work!


Carlos Cetina wrote on 2020-06-22 UTC

@Aurelian,

At our current game I cannot make 7... b h5-f3 (bishop x wizard) because the GC program says: "A King may not use the special moves out of check. Use your browser's BACK button to go back to the previous page, then reload if necessary."

In order not to affect the current games, it would be convenient to do the tests to improve the code in a cloned preset using another settings name.


Aurelian Florea wrote on 2020-06-22 UTC

Fergus,

I have solved it:

if flag f2:
if moved == K:
  move $dest $origin; // Temporarily undo King move
  if sub checked $origin:
    if not or checkleap $origin $dest 1 0 checkleap $origin $dest 1 1:
    die A King may not use the special moves out of check.;
  endif;
endif;
  move $origin $dest;
endif;
endif;


Fergus Duniho wrote on 2020-06-19 UTC

Are you saying that this code is not working?

if and flag f9 == moved k:

Looking at the rest of your code, I see details that pertain only to castling, but I presume this code is not for castling. You need to understand what the code does and remove or modify what doesn't fit your purposes.


Aurelian Florea wrote on 2020-06-19 UTC

All right, you were correct on that final point, but things are not done.

Let us start from scratch. Maybe I'll understand what is going on.

The code that greg has suggested:

if and flag f2 == moved K:

for the condition that enters the main code in question does not work although the way I see it it should.. It is always false. I have checked for the flag. That works fine so it moved be the == moved K part. But I can't see why!


Fergus Duniho wrote on 2020-06-18 UTC

You're still checking the flag on f2, which is not the starting space for the Black King.


Aurelian Florea wrote on 2020-06-18 UTC

I know that. This is why the error seems weird to me. I'll get back to you on that!


Fergus Duniho wrote on 2020-06-17 UTC

Black pieces use lowercase labels. K is the white King, not just any King.


Aurelian Florea wrote on 2020-06-17 UTC

I see what you say but with that I get always false. And the flag works well. I had checked.  So it is the equality. If i write if and flag f2 moved == K then it works for the king but the code enters for other pieces too which is weird.  So maybe == moved K regardless of how is written does not give the expected answer but all T or all F, which is weird. And that probably means I have trouble somewhere else.


Greg Strong wrote on 2020-06-17 UTC

Should be:

if and flag f2 == moved K:

Operators come before their arguments.  I'll add parenthesis to show what's going on (although you should not use the parenthesis):

if (and (flag f2) (== moved k))

 


Aurelian Florea wrote on 2020-06-17 UTC

@Fergus,

I'm glad to say I have managed to make it work.

Here is the code that does well:

if flag f2 and moved == K:
move $dest $origin; // Temporarily undo King move
  if sub checked $origin and not checkleap $origin $dest 1 0 or checkleap $origin $dest 1 1:
    die A King may not castle out of check.;
  endif;
move $origin $dest;
endif;

if == moved K: 
unsetflag f2;
set Kpos $dest;
endif;

if sub checked var Kpos:
  die You may not move into check.;
endif;

Later edit:

But althought the code works for white it does not work for black well, and also there is a weird side effect where a queen move on the first square generates the a king may not castle out of check error. So there is still work to do despite the progress.

2nd edit:

I think I have found the bug that generates both problems. It is the first if :

if flag f2 and moved == K:

this is either always true or always false if I move the == ahead of moved but I cannot get it to work in the intended way which is enter the condition when flag f2 of set and the K has just been moved.


Fergus Duniho wrote on 2020-06-16 UTC

You had this code before it. You should be able to see how it would stop your other code from working.

if == moved K: 
  unsetflag f2;
  set Kpos $dest;
endif;

Aurelian Florea wrote on 2020-06-16 UTC

I had tried the following in the postmove section 1 but with little succes:

 

if flag f2 and == moved K:
move $dest $origin; // Temporarily undo King move
  if sub checked $origin:
    die A King may not castle out of check.;
  endif;
move $origin $dest;
endif;


Aurelian Florea wrote on 2020-06-16 UTC

@HG,

I will be changing the pictures once I figure out how.

For now you can use the symbolic apothecary piece set.


Fergus Duniho wrote on 2020-06-16 UTC

The castle subroutine contains these lines:

  move #to #from; // Temporarily undo King move
  if sub checked #from:
    die A King may not castle out of check.;
  endif;

And before it ends, it includes this line:

  move #from #to; // Redo King move

H. G. Muller wrote on 2020-06-15 UTC

Considerring the arguments made by Jean-Louis Cazeaux I have changed the names of 2 of the pieces to my original intent so the griffin and aanca became dragon and griffin (meaning the aanca is called griffin now).

This seems a very bad change, and it also seems you misunderstood the arguments of Jean-Louis. For one, Griffin is the established English name for an F-then-R, and it would be very confusing to now use it for another piece. Jean-Louis never claimed the Griffin would be a suitable name for the W-then-F; only that Aanca was the historic name of the F-then-R, and that it would be bad to use it on another piece. And that Aanca referred to a monstrous mythical bird for which no English name exists.

And you now use the image of a Griffin for a piece called Dragon, and the image of a bird for a piece called Griffin...


Aurelian Florea wrote on 2020-06-15 UTC

@Fergus,

I have noticed that I forgot to ask you how to restrict the king's special moves to when the king is not in check. May you give me a final extra hand for this project?

The preset is here : https://www.chessvariants.com/play/pbm/play.php?game=Apothecary+Chess-Modern&settings=ApothecaryChess-Modern


Aurelian Florea wrote on 2020-06-15 UTC

Can I do the following changes to the apothecary: standard piece set?

I'd like to be able sometime myself because in the near future I hope to come up with some other new games.

 

Add a dragon (with the letter D) 

Delete the Bird

Rename the AB to A  the CA to L and the CH to H


Aurelian Florea wrote on 2020-06-15 UTC

Considerring the arguments made by Jean-Louis Cazeaux I have changed the names of 2 of the pieces to my original intent so the griffin and aanca became dragon and griffin (meaning the aanca is called griffin now).


Aurelian Florea wrote on 2020-06-11 UTC

Hello Thor,

I have sent 2 general invitations 1 for each game. It should work.


Thor Slavensky wrote on 2020-06-11 UTC

Hi Aurelian, I really like to try out the new set-up, as I said it looks like very 'game-logical' with the Joker in the middle and the auxillary pieces nicely spread around it.. But I cannot open the invitation, I can't find the accept buttom, it just says, that it's your turn to move. Would you try again, or should I send an invitation to you ? 


Aurelian Florea wrote on 2020-06-11 UTC

@Thor

I had sent you an invitation with the new preset.


25 comments displayed

LatestLater Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.