Check out Glinski's Hexagonal Chess, our featured variant for May, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Ratings & Comments

EarliestEarlier Reverse Order LaterLatest
Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
💡📝Aurelian Florea wrote on Wed, May 27, 2020 04:57 AM UTC:

Fergus,

I got stuck at the command that checks if the number of turns is larger than 8. How do I proerly write this?

My code uses:

if mln > 8 :
delete p2;
else:...

This is always true for some reason.

 

Commen t edit.

Moreover I cannot use setsytem starpath as it gives the error  You may not set $starpath(!p2 with setsystem.


Chess+. Players choose when and where to place their pieces behind the pawns.[All Comments] [Add Comment or Rating]
David Cannon wrote on Wed, May 27, 2020 05:52 AM UTC:Excellent ★★★★★

Great idea. I have always loved Fischerrandom Chess, but I really don't like the way it gives players no control over where their pieces start. I also consider Fischer's castling rule to be cludgy and it's hard to believe that a man of his genius came up with that. Your project fixes those shortcomings. 

One tweak I'd make if it were up to me is to require both players to enter ALL their pieces before making any other moves. White would enter a piece, followed by black, and they'd take it in turns to enter pieces, one at a time, until the first and eighth ranks were full. Of course, Bishops must be required to be on different coloured squares. 


💡Christian Freeling wrote on Wed, May 27, 2020 01:05 PM UTC:

Hi David,

Chess+ just so happened after I had stopped inventing games and Nick became more active in the games business. It has been done from an inventor's point of view, not from a Chess player's. So it may seem more rigorous. It allows bishops to be entered on the same sub-grid because disallowing it requires an additional rule. After all, legal Chess positions are possible with bishops on the same sub-grid.

We think it works better than Fischer's brainchild but we fear that this will not represent any future majority.


Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, May 27, 2020 04:19 PM UTC:

Operators must precede the operands in GAME Code. So the line " if mln > 8 " should be "if > mln 8" except that mln is not what you want to use here. This is not a measure of turns. It is the line number of a line in the movelist, and it can be affected by the presence of comments. What you want to use instead of mln is turn.


💡📝Aurelian Florea wrote on Wed, May 27, 2020 05:38 PM UTC:

I don't know how to put a J and a j in hand. For now I used a p2 field (far from the rest of the board, but still on board) containing a Joker. Same for black. J*origin gives an error related to that.


🕸Fergus Duniho wrote on Wed, May 27, 2020 05:58 PM UTC:

Use setsystem to set the value of starpath.


💡📝Aurelian Florea wrote on Wed, May 27, 2020 06:06 PM UTC:

I had seen the material in the meantime. Thanks. GameCode is a Marvel!...


💡📝Aurelian Florea wrote on Wed, May 27, 2020 06:49 PM UTC:

@Fergus,

Hopefully you don't feel to nagged, but I still don't understand how to add a piece in the reserve. So far I got this.

setsystem starpath (!p2) reverse (!p9);
reserve first P;
reserve second p;
allow drops 2;


Omega Chess. Rules for commercial chess variant on board with 104 squares. (12x12, Cells: 104) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, May 27, 2020 08:46 PM UTC:

@Bruce:

I converted my 4-men EGT generator to doing the Omega Chess board. (I mapped the board into an 11x12, and then it effectively only needs 122 elements, as neighboring boards can be partly interleaved.)

Oddly enough this confirms the numbers you gave for Bishop+Knight and Wizard+Knight!

What I had not realized is that these end-games are not generally won at all, but are mosty fortress draws: you can only deliver mate in the corner of the Bishop's/Wizard's shade, as you need to cover both the corner and the Wizard square, or the King will simply escape to the latter. And if the bare King takes shelter in the other corner there is no way to smoke him out of the Wizard square there. So you have to go through excessive trouble to prevent the bare King fleeing into that corner, which apparently causes an enormous slowdown. On a normal board it is easy to drive the King along the edge from one corner to the other, so trying to reach whatever corner is not a good defensive strategy there.

As a consequence, only 38.3% of the KBNK positions are won (22.3% lost), and 33.7% of the KWNK positions (17.9% lost). Against 99.8%won / 81% lost on regular 10x10.

Your 3-men generator seems buggy, though; as the checkmating applet here shows, WD is a quite easy win on 8x8.


Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, May 27, 2020 09:49 PM UTC:

$starpath is an array of two arrays. This should do:

setsystem starpath ((!p2) (!p9));

You don't need to use the reserve command if you place the Jokers there in your FEN code.


💡📝Aurelian Florea wrote on Thu, May 28, 2020 01:29 AM UTC:

I still get the same error:

ILLEGAL: R a1-d1; J*origin on turn 1:

You have no J to drop with the * operator for move: MOVE:  J*origin.

In the end of pregame I have:

setsystem starpath ((!p2)(!p9));
reserve first J;
reserve second j;
allow drops 2;

and

in the end of postmove1 I have:

verify == space p2 J;
if > turn 8:
delete p2;
elseif not $answered and == mln $maxmln:
ask "Do you want to insert your joker now?" "Yes" J*origin "No";
endif;

There is also the need to check for flags but for now I'd like to understand why I receive this error. Thanks! 

Edit:

I have deleted the reserve commands. Now it just does nothing.


🕸Fergus Duniho wrote on Thu, May 28, 2020 02:36 AM UTC:

Perhaps because Shogi has Black move before White, something got mixed up in how drops work, and the first array in $starpath is for the second player. So, switching the two values in the $starpath array fixes this problem.

But then you have a new problem. When you allow multiple moves on the same turn, you have to treat them individually. This normally involves rolling back the moves, then doing one at a time, checking the legality of each move individually before doing the next one. See my code for Extra Move Chess or Marseillais Chess for examples.


💡📝Aurelian Florea wrote on Thu, May 28, 2020 02:47 AM UTC:

Marseillaise chess seems to have an error!


💡📝Aurelian Florea wrote on Thu, May 28, 2020 03:03 AM UTC:

What should I learn from Extramove chess? I see that the premove section has a store command. That means that the initial position is remembered and probably later restored and then actually make the 2 moves after legality checks have been made.


FrogsAndPrincess. Members-Only Based on Princess and the Frog Story.[All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, May 28, 2020 01:06 PM UTC:

What you should learn from Extra Move Chess is how to program your code to deal with two moves made by the same player on the same turn. While Chess allows Pawn Promotion as two moves without going through this, this is because adding a piece to a space does not change the values of $origin and $dest. However, dropping a piece does. It counts as a complete move just as much as moving a piece on the board.

The first line in Extra Move Chess's Post-Move section is

set mvs explode chr 59 thismove;

This line creates an array of all the moves made. It uses chr 59 to tell the explode function to split the string returned by thismove where semicolons appear.

The next line restores the position to what it was when it was stored in the Pre-Move section.

Some of the stuff that follows is peculiar to Extra Move Chess. The main thing to pay attention to is how it uses the elements of the mvs array to replay each individual move before testing its legality.

If you don't want to program the game as though it were a double move variant, then you could introduce the Joker to the board with an add move. This is the kind of move used in Pawn promotion. It uses the piece notation with a hyphen and a destination. Unlike a regular move, it does not include an origin space.


🕸Fergus Duniho wrote on Thu, May 28, 2020 02:27 PM UTC:

The alternative to dropping a piece held in hand is what is called in the code freedrops. But allowing this will allow a bunch of illegal moves that would have to be prevented in the code. Also, it changes the value of $dest if it is to a location other than $dest, and that might still require you to handle things as though a double move were being made. One other alternative is to put the rule enforcement code in the Pre-Move sections. This would involve rewriting some things. You would have to extract the moves from thismove and test their legality before they're made. Before they're made, $origin and $dest would not be available.


💡📝Aurelian Florea wrote on Thu, May 28, 2020 03:01 PM UTC:

So any way I go it is a bit complicated.

Now I face an message saying that : A J cannot move from p2 to origin (anywhere origin is).

To be honest, at the beginning I never though programming this game is going to be so tough. I remembered you warning me about it.

For now my mind is all over the place. I think I'll try again tomorrow.


FrogsAndPrincess. Members-Only Based on Princess and the Frog Story.[All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Odin's Rune Chess. A game inspired by Carl Jung's concept of synchronicity, runes, and Nordic Mythology. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, May 28, 2020 06:49 PM UTC:

Why does it say stalemate is not possible? It seems the diagram of which it is claimed the best Valkyrie move is capturing the Forest Ox (Vf1xf7) actually leads directly into stalemate, through that move. After it black has no legal moves, and after hypothetical null move white cannot capture both his Kings at once, so he is not in check either. (And besides, the last black piece could have been taken elsewhere, so that neither black King would have been under attack.)


Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, May 28, 2020 11:18 PM UTC:

One of the things that can make programming double moves more difficult is the loss of information about the previous move. To help correct that, I have added three new variables called $prevmoved, $prevorigin and $prevdest. These store the previous values of $moved, $origin and $dest respectively. Using these, you could detect whether a Joker has been dropped and test whether the previous move was legal. Here's how it could work.

Instead of using $moved, $origin and $dest in the code for evaluating the main move, use some variables, such as #piece, #from and #to. If the last move was a Joker drop, set these variables to $prevmoved, $prevorigin, and $prevdest. Otherwise, set them to $moved, $origin, and $dest. Evaluate the move. Then if a Joker drop was made, evaluate that.


FrogsAndPrincess. Members-Only Based on Princess and the Frog Story.[All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
💡📝Aurelian Florea wrote on Fri, May 29, 2020 06:26 AM UTC:

For entering the block of code that is about the joker insertion I try to use these commands. Why am I wrong? 

verify flag space $origin; 

verify == space p2 J;


Odin's Rune Chess. A game inspired by Carl Jung's concept of synchronicity, runes, and Nordic Mythology. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
dax00 wrote on Fri, May 29, 2020 08:05 AM UTC:

Seems clear to me. A player with only kings is forced to pass. "Checkmate" is not a thing. You just take the kings.

Vxf7 pass Vxg7 pass Kd6;-e6 1-0

 


H. G. Muller wrote on Fri, May 29, 2020 08:22 AM UTC:

But turn passing is not allowed in this game. If you read back on earlier comments to this game, one even goes so far as to state that when you can make pseudo-legal moves that would not change the board, (like using a Valkyrie's swapping move to swap it with your other Valkyrie), such a move would be illegal, because it is equivalent to a turn pass. Of course you don't even have such a move here.


25 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.