Check out Grant Acedrex, our featured variant for April, 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 ]

Ratings & Comments

LatestLater Reverse Order EarlierEarliest
Apothecary Chess Tournament[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Thu, Jan 14, 2021 06:39 PM UTC in reply to Aurelian Florea from 06:57 AM:

I can barely understand what you say, would you have time to do it, Fergus?

Here it is with comments to indicate the main changes I made. I have not tested this. It will be up to you to do that.

sub stalemated kingpos:
  store;
  local from piece to movetype ltm;

  // store the value of last_type_moved into another variable
  set ltm last_type_moved;

  set movetype MOVE;

  if isupper space #kingpos:
    def friends onlyupper;
    def friend isupper #0;
  set cspaces var wcastle;
  else:
    def friends onlylower;
    def friend islower #0;
  set cspaces var bcastle;
  endif;

  // While the royal piece is called the King in these comments,
  // it may be any piece. These variables determine what the royal piece is.
  set royal space var kingpos;

  store;

  // Can any piece legally move?
  for (from piece) fn friends:
    for to fn join const alias #piece "-Range" #from:
      if fn const alias #piece #from #to and not fn friend space #to and onboard #to:
        move #from #to;
        if not sub checked cond == #from #kingpos #to #kingpos:
          setlegal #from #to;
          // Whenever a piece is moved for the sake of trying out a potential move, the value
          // of last_type_moved should be changed to match the type of the piece moved.
          if isupper #piece:
            if != const alias #piece White_Joker:
              if != const alias #piece White_Pawn:
                set last_type_moved const alias #piece;
              else:
                set last_type_moved Black_Barren_Pawn;
              endif;
            endif;
          elseif != const alias #piece Black_Joker:
            if != const alias #piece Black_Pawn:
              set last_type_moved const alias #piece;
            else:
              set last_type_moved White_Barren_Pawn;
            endif;
          endif;
        endif;
      endif;
      restore;
      // Each time the evaluation of a potential move is over, and the position has been
      // restored, the value of last_type_moved should be restored to its original value.
      set last_type_moved #ltm;
    next;
  next;

  // Castling code removed, since Apothecary Chess does not include castling.

  // All done. Set $legalmoves and return;
  return cond count system legalmoves false true;
endsub;

Aurelian Florea wrote on Thu, Jan 14, 2021 10:00 AM UTC in reply to H. G. Muller from 09:22 AM:

I have never worked with the Play-Testing Applet so I do not know what to say!


H. G. Muller wrote on Thu, Jan 14, 2021 09:22 AM UTC in reply to Aurelian Florea from 06:57 AM:

I must admit that this would currently also not work in presets generated by the Play-Testing Applet. At least for highlighting purposes: it also fails to update the 'last moved piece' when it tenttatively makes the move that might have to be highlighted in order to test if it exposes the King to capture. But if you decide to use the Applet-generated code, I can fix that.

To speed up fully-legal highlighting, I use a short-cut: Instead of trying all possible opponent moves to see if they capture the King, I only try those that might have been affected by the move of which we want to judge the legality. To that end it first marks all squares attaced by the opponent in the original position with its own King removed, and for every piece it makes a list of moves (origin and direction) that they obstruct. It also makes a list of pre-existing checking moves. After trying a move, it then only reruns the pre-existing checks in the resulting position (to see whether these are now resolved), plus the moves that were blocked by the moved piece (to check whether that piece was pinned). And for King moves it tests whether these go to a square that was marked as being under attack.

I suppose it would have to rerun all moves of an imitator too, because these are also affected by the preceding move. (And do the attacked-squares test in the initial position while imitating a King.)


Aurelian Florea wrote on Thu, Jan 14, 2021 06:57 AM UTC in reply to Fergus Duniho from Wed Jan 13 06:15 PM:

I can barely understand what you say, would you have time to do it, Fergus?


🕸Fergus Duniho wrote on Wed, Jan 13, 2021 06:15 PM UTC in reply to Aurelian Florea from 04:18 PM:

It seems to me that you need a more sophisticated stalemated subroutine. This would have to take into consideration how a Joker would be able to move after any given piece moves. At the beginning of the subroutine, it should store the value of last_type_moved into another variable. Whenever a piece is moved for the sake of trying out a potential move, the value of last_type_moved should be changed to match the type of the piece moved. Each time the evaluation of a potential move is over, and the position has been restored, the value of last_type_moved should be restored to its original value.


Aurelian Florea wrote on Wed, Jan 13, 2021 04:18 PM UTC:

@Fergus, Hello, Here is the problem I am having with the apothecary presets. It is related with the the joker's ability to check. Normally the player to move, in order to not end the turn in check it must not move a piece that it owns that would give the enemy joker an checking power. But the king should not be checked if a joker just moved with a power and keeping that power gives check. At the beginning of the turn the joker that of the player not to move should have no power of check as it cannot capture while not moving. But my current preset does exactly the later. I'm contemplating what to do but probably cutting the power of the joker outside one's own ply should do the trick. Another problem though is that the preset does not recognize that a piece that gives a checking power to the joker is pinned. How should I do that? That is the situation I was talking at the beginning of the comment!


Aurelian Florea wrote on Tue, Jan 12, 2021 04:29 PM UTC in reply to Erik Lerouge from 04:06 PM:

Yes, the interaction between check and the joker does not work as intended. I'll look into it tomorrow. Thanks for pointing that out!


Aurelian Florea wrote on Tue, Jan 12, 2021 04:25 PM UTC in reply to Erik Lerouge from 04:06 PM:

I'll check it!


Erik Lerouge wrote on Tue, Jan 12, 2021 04:06 PM UTC:

In our game the preset doesn't let me do the move I want, because it says that I am in check (while I am not). So I cannot play my move as I intended.


Aurelian Florea wrote on Sun, Jan 10, 2021 06:28 AM UTC in reply to Aurelian Florea from Fri Jan 8 01:56 PM:

I noticed you are back, Oisin. Thanks!


Aurelian Florea wrote on Fri, Jan 8, 2021 01:56 PM UTC:

Unfortuneatly I cannot get to Oisin(sxg) in any way! If this goes on he will loose on time his round 2 match!


Piece Laboratory[Subject Thread] [Add Response]
Aurelian Florea wrote on Tue, Jan 5, 2021 12:40 PM UTC in reply to Jean-Louis Cazaux from 12:36 PM:

Jean-Louis, I agree with you on all these points!


Jean-Louis Cazaux wrote on Tue, Jan 5, 2021 12:36 PM UTC in reply to Aurelian Florea from 09:58 AM:

By taste, I want just to say that having tested to introduce the Nightrider or the Dabbabarider into my variants, I gave up because I didn't like those moves that are so difficult for me to visualize. But, I should recognize that others may like as the Nightrider is among the most popular fairy pieces. One will say that being a popular fairy piece doesn't mean being popular for chessvariants, eg. the grasshoper or the locust, and this is true also. It is interesting to discuss these matters and exchange our points of view. Thanks my friends.


Apothecary Chess Tournament[Subject Thread] [Add Response]
Aurelian Florea wrote on Tue, Jan 5, 2021 11:37 AM UTC in reply to Aurelian Florea from 10:13 AM:

Round 2 games have been assigned!


Aurelian Florea wrote on Tue, Jan 5, 2021 10:13 AM UTC:

Round 1 is finished! So far Erik and Daniel have 2 points and I and Oisin have zero. In maximum a day I'll start the second round!


Piece Laboratory[Subject Thread] [Add Response]
Aurelian Florea wrote on Tue, Jan 5, 2021 09:58 AM UTC in reply to H. G. Muller from Mon Jan 4 03:44 PM:

HG, I don't totally agree with you here. The thing is that some combinations are more interesting than others making that different than a neutral new integer number. But true riders are just very difficult to actually use, not just humanly difficult to observe.

Jean-Louis, Actually it is not a matter of taste. At the end of the day there is crafting into designing chess variants with their pieces. Sure there is room for taste but a camelrider-zebrarider compound is just too crazy for my above mentioned reasons.


H. G. Muller wrote on Mon, Jan 4, 2021 03:44 PM UTC in reply to Jean-Louis Cazaux from 03:12 PM:

I agree. To humans true riders (i.e. those which skip squares) are very difficult to grasp.

I don't see the point of this exercise anyway. Obviously you can have any combination of riders, leapers, hoppers, and what have you, and most of those would have never been tried before. Mentioning them is about as interesting as mentioning 'new' integer numbers.


Jean-Louis Cazaux wrote on Mon, Jan 4, 2021 03:12 PM UTC in reply to Aurelian Florea from 01:01 PM:

I agree with Aurelian. Personally, I'm not at ease at all with leaper-rider pieces. I had tried a nice compound, colorbound, of Dabbaba-rider + Ferz, but I find difficult to visualise what it does. Even with the Nightrider I have the same difficulty. So, it's a matter of taste, as usual.


Aurelian Florea wrote on Mon, Jan 4, 2021 01:01 PM UTC in reply to Leon Carey from 12:20 PM:

You need a very big board for this to matter and it will have trouble as it will make to easy forks as it can jump a lot. You will need to desing the whole game just for it!


Leon Carey wrote on Mon, Jan 4, 2021 12:20 PM UTC:

How about a compound piece of the zebrarider and the camelrider?


Piece Value and Classification[Subject Thread] [Add Response]
H. G. Muller wrote on Sun, Jan 3, 2021 07:04 PM UTC in reply to Kevin Pacey from 06:04 PM:

Short-range pieces go down in value compared to sliders, but Chieftain Chess has mostly (only) short-range pieces. Which suffer similarly. The orthodox Knight isn't so hot on 16x12 either. Speed no doubt is an asset in games with conventional Pawns, as it increases the area from which you are able to stop a passer. The Knight is better at that than the Man. OTOH, when a Man catches up with a passer, it annihilates it. A Knight can only stop its advance, remaining bound to doing so forever.

Of course having other types of Pawns would totally upset these evaluations. E.g. with Metamachy Pawns, which can always move 2 steps ahead, a Man would be pretty inept at stopping them, greatly affecting the relative value of Knight and Man.

As to the Pawn definition: Part of the problem is that 'Pawns' are a family rather than a class of pieces. In Berolina Chess the Berolina Pawns obviously are Pawns. So when they appear in another variant as 'guest pieces' in low numbers, we still think of them as Pawns. In Mini-Shogi you only start with a single Pawn. But no one doubts it is a Pawn, because it is the same piece as in regular Shogi, where you start with 9. I wouldn't call a 'Steward' a Pawn, especially not when you start with only two, embedded in the Pawn rank. It is just a weak piece, and starting on the Pawn rank IMO doesn't have any significance. It is weak enough to fit my definition, though, in a variant where you started with many of them. The Cavalier already is more worrisome, although a Mao is only worth half a Knight in a FIDE context. But part of the value of a FIDE Pawn (some 40%) comes from its ability to promote, and a Mao would promote much more easily. A Horseman should still be pretty weak; it adds a quarter non-capturing Knight to a normal Pawn.


Greg Strong wrote on Sun, Jan 3, 2021 06:49 PM UTC:

Some other examples:

Cavalier in Grand Cavalier Chess

Horseman in Wildebeast9

 


Kevin Pacey wrote on Sun, Jan 3, 2021 06:04 PM UTC:

Fwiw, I had calculated a really low value for a single Guard (Man) on a 16x12 Board (1.33 chess pawns), and 2.31 for a Knight for that board size, for example (with the other pieces being of even greater value), though as usual my ways of calculating values are primitive/suspect, for some/many people I suspect. :) Naturally though, for a given board size, 2 or more Guards would be worth more than (2+)x the value of a single guard.


Jean-Louis Cazaux wrote on Sun, Jan 3, 2021 06:04 PM UTC in reply to Kevin Pacey from 05:12 PM:

Ooops, sorry, yes, same thing


H. G. Muller wrote on Sun, Jan 3, 2021 05:53 PM UTC in reply to Kevin Pacey from 05:31 PM:

I would hesitate to qualify the Man in Chieftain Chess as a Pawn. It is more equal in value to the other pieces than to their value difference. But it is certainly true that you start with very many of them. Accepting that it would be Pawn is tantamount to dropping any requirement on value, and consider their large number the only defining characteristic.


25 comments displayed

LatestLater Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.