Comments/Ratings for a Single Item
By the way, both Kirin and Phoenix have an accepted usage from Chu Shogi, it would be a pity to assign them other moves.
Kirin= FD Phoenix= WA
Jean-Louis, I know what the things are, but I'm not sure about a simple representation as in piece icons.
I play Chu Shogi often enough. I knew about them. But it seemed to me that it is a good solution. This is because mythical birds seem to go well with bent riders. Should you have a better suggestion, I'm listening.
I think Kirin and Phoenix are perfect names. I like to stick with what is established. Typically, they are represented with:
I also have or can easily make an RNN
EDIT: I do have a chancellor-rider:
OK, sorry
Greg, I meant representing the birds, not symbolic representation.
I could not draw the pieces in question (Kirin and phoenix) so if someone is willing to help me I'd be extremely grateful.
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(NmHmA).
The wizard(FL).
The cahmpion (WAD).
The sangoma (BZ).
The dragon (a ferz then rook).
The griffin (a wazir then bishop).
The Cyclops. A rook3 then bishop that can also do an alfil jump.
The Giant. A bishop2 then rook that can also do an dabbabah jump.
Thanks for reading all this! I await your reactions.
@Fergus
I am trying to write the game code for 2 new pieces I want for my newest chess variants. The first, a bent rider, called the lion should move like a bishop for 2 squares and then towards outside like a rook. It may also move like a dabbabah. I have written the code bellow that has the problem that allows the final rook moves without checking for the first bishop part of the move. Please take a look:
def Lyon
fn (checkride #0 #1 1 0 and empty #0)
where #0 2 sign - file #1 file #0 2 sign - rank #1 rank #0 #1
and not fn Knight #0 #1
or and checkride #0 #1 1 1 <= distance #0 #1 2
or fn Dabbabah #0 #1;
The second, it is also a bent rider, called the tiger should move like a rook for 3 squares and then towards outside like a bishop. It may also move like an alfil. In the same way as before the bishop moves are allowed by my code whitout checking the rook ride. Code so far:
def Tiger
fn (checkride #0 #1 1 1 and empty #0)
where #0 0 * 3 sign - rank #1 rank #0 #1
or fn (checkride #0 #1 1 1 and empty #0)
where #0 * 3 sign - file #1 file #0 0 #1
and not fn Knight #0 #1
or and checkride #0 #1 1 0 <= distance #0 #1 3
or fn Elephant #0 #1;
I could not find code that block the ride in the first part.
Since Markdown altered your code by removing the multiplication operators, and HTML interprets the less than sign as the beginning of a tag, I am responding in Text. Here is your code for the Lyon: def Lyon fn (checkride #0 #1 1 0 and empty #0) where #0 * 2 sign - file #1 file #0 * 2 sign - rank #1 rank #0 #1 and not fn Knight #0 #1 or and checkride #0 #1 1 1 <= distance #0 #1 2 or fn Dabbabah #0 #1; To rule out regular Rook moves, this should fix it. This produced the correct pattern on an empty 8x8 board with e4 as the origin and also when I blocked the diagonal move at f5. def Lyon checkaride #ts #1 0 sign #rd or checkaride #ts #1 sign #fd 0 and checkride #0 #ts 1 1 and empty #ts =ts where #0 * 2 sign #fd * 2 sign #rd and match 2 abs #fd abs #rd =fd - file #1 file #0 =rd - rank #1 rank #0 or and checkride #0 #1 1 1 <= distance #0 #1 2 or fn Dabbabah #0 #1; Instead of using a lambda function, this assigns values to variables that get reused. These are rd for rank distance, fd for file distance, and ts for turning space. After calculating fd and rd, it makes sure that one of them has an absolute value of 2. It then uses them to calculate ts. After checking that ts is empty, it checks that a diagonal move from #0 to #ts is legal, and it then uses the value of fd or rd with checkaride for checking a Rook move in a specific direction from #ts to #1. It first checks for a Rook move along the file of ts. If that returns false, it then checks for a Rook move along the rank of ts. When I tried checkride #ts 1 1 0, it gave inaccurate results. The following code gave the right results on an empty board, but it gave false positives when I blocked it on f5. def Lyon fn (checkride #0 #1 1 0 and empty #0) where #0 * 2 sign - file #1 file #0 * 2 sign - rank #1 rank #0 #1 and not fn Knight #0 #1 and not checkride #0 #1 1 0 or and checkride #0 #1 1 1 <= distance #0 #1 2 or fn Dabbabah #0 #1; I will let you figure out how to fix the Tiger, since you should have more of a clue now.
@Fergus,
Brilliant, it works and I understood them well enough to be able to make even other pieces.
@Fergus, Now I am trying to make the castling work.
The king is supposed to be able to castle with a rook by moving 3 spaces towards it or with a cannon by moving 4 spaces towards it, Usual conditions apply. I have used the following flags and variables:
set wcastle d1 c1 j1 k1; set bcastle d12 c12 j12 k12; setflag a1 b1 k1 l1; setflag a12 b12 k12 l12;
I have 2 problems. 1.The castling moves are not shown although they work. 2. The long cannon castle is not done entirely although the king moves correctly.
Can you give me a link to the preset you're working on?
I have forgotten about that:
set wcastle d1 c1 j1 k1; set bcastle d12 c12 j12 k12;
From these, I gather that the King lies somewhere between d and j.
setflag a1 b1 k1 l1; setflag a12 b12 k12 l12;
But here, nothing is flagged between d and j. Make sure to flag every single piece that can castle, including the King.
I have repeated all my tests. The same two problems appear.
Test. I keep getting the error message, "There is no comment to post."
- The long cannon castle is not done entirely although the king moves correctly.
You don't seem to be unflagging spaces properly. I confirmed that you left the Rook's space unflagged by moving the Rook back after moving it and then castling with it. When the Rook's space remains flagged, you will not be able to castle with the Cannon. You should do as I do in Chess, which is to unflag every space moved to or from. The code used in Chess is
unsetflag $origin $dest;
I think I accidentally deleted a comment while deleting some test comments.
1.The castling moves are not shown although they work.
The code for this goes in the stalemated subroutine, and here is what you have in that subroutine:
// Castling code removed, since Apothecary Chess does not include castling.
So you need to add some code for it there. You can probably borrow some from the one in the fairychess include file. I'm not sure if it will require any modification. Try it without modification first and see how it works.
@Fergus,
Why in the castle subroutine in fairychess.txt include file the line unsetflag #RPOS; is commented?
Why in the castle subroutine in fairychess.txt include file the line unsetflag #RPOS; is commented?
I suppose it could be uncommented if you wanted to be thorough, but it isn't necessary to prevent illegal castling. Once the King has moved, the space it moves from and the space it moves to both get unflagged, and every space the King moves to gets unflagged. So, no matter what, the King is still unable to castle. As long as the King can't castle, nothing can castle with the King. So, leaving a flag on the Rook's original space doesn't change anything critical to the game.
@Fergus,
I am almost done with the castling. It was not that hard. I have left the normal stalemated subroutine which took care properly of the moves display. Also I am handling the flag sets and unsets properly as far as I can see. What I still need to do is delete a variable from wcastle or bcastle as the rook gets moved. How do I delete a value from an array?
25 comments displayed
Permalink to the exact comments currently displayed.
Aurelian you can find them on Wikipedia is that is your question.
The Kirin/Kyrin, or Qilin, is a chinese/japanese monster (haven't you ever drunk a Kirin beer?). Some think that this monster could have been inspired by a giraffe seen by early Chinese navigators.
Like the Aanca/Anka/Anqa could have been inspired by the Aepyornis of Madagascar. The Phoenix is also a monster giant bird, a kind of Greek version of the Persian Anqa. Again, a different beast than the Gryphon/Griffin whatever Murray said :=)