Check out McCooey's Hexagonal Chess, our featured variant for May, 2025.


[ 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 ]

Comments by HGMuller

EarliestEarlier Reverse Order LaterLatest
[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Oct 6, 2008 10:18 AM UTC:
Rich:

I think you overly dramatize the issue of promotions. In normal Chess the
multiple Queen problem has in practice no importance at all. Flipped Rook
is an excellent solution, and in official tournaments one usually simply
grabs a Queen from the guys playing next to you. Bughouse in theory needs
4 additional pieces to represent N,B,R and Q obtained through promotion
(different from their original counterparts, as they revert to Pawns on
capture). In official Bughouse tournaments I participated in, the rules
were such that the promoted Pawns kept the physical shape of a Pawn (to make sure they were passed on as Pawns on capture), and that the players simply had to remember what piece that Pawn represented. (After the promoting player had yelled the name of the piece he was promoting to, which of couse was always Queen.) When playing Bughouse or Crazyhouse on Internet Chess Servers, the players see promoted Pawns represented as the piece they promoted to. So in that case they will have to remember which Queens will revert to Pawns, and which will remain Queens on capture. Crazyhouse is the most played variant on Chess Servers, and I have never heard anyone complain about this state of affairs...

Crazyhouse of course has an even larger problem with equipment, as the
pieces need to change color there. For OTB play you would need two sets,
and keep good accounting to prevent cheating. The Japanese solution to
these problems turns out inacceptable to Western players.

This whole thing is a non-issue, and addressing it is a waste of time.

As to home-made sets: the standard solution is that people use a normal
Chess set, and agree that in the upcoming game Queens represent
Withdrawers, and Knights represent Chameleons, etc. This is only
troublesome to experienced Chess players. There are plenty of low-tech
solutions to this that are within reach of even the most inept. One could
use Draughts chips or stacks of Draughts chips to represent some pieces.
They might have equipmet lying around for other board games they happen to
have. One could use wooden blocks from a building set. One could make paper
cones of two different sizes. People that feel the use of normal Chess men
is too strong  distraction, will find a solution to this that can be
implemented in 5 minutes. If they really think the game is worth a replay,
they will consider more esthetically pleasing solutions that cost money.

It would be nice, though, if a set with four extra pieces (a pair plus two
unique ones), and two Pawns (for each color, so 12 pieces in total) could
be bought. There is a huge practical problem, though: all Pawns of a Chess
set should be equal, or the solution would look too much improvised to be
worth throwing money at. And the precise shape of Pawns as it is in
standard Staunton sets is no doubt protected as intellectual property.

If I were to construct a piece set for Capablanca Chess, I would simply
buy two standard Staunton sets. The Knights of such a set consist of a
horse figure from the neck up, glued to a base. I would cut those lose
from each other, and glue the head on top of an inverted Rook, to
represent the Chancellor. Then I would glue a Bishop on the remaining
Knight base, and make a second cut in the Bishop's head, symmetrically
opposed to the original one, so that the top part (with the 'knob') comes
off. This would represent the Archbishop. So now I have 2 Archbishops, 2
Chancelors, and 8 Pawns (for each color), and I would still be left with
Kings and Queens. These I would decapitate, to make a pair of
undistinctive pieces that could be used as a wildcard. So in fact I would
have made twice as many unorthodox pieces as I needed for Capablanca
Chess, with some Pawns to spare as well. From 3 normal piece sets I would
have made two 'Capablanca+' sets, and could sell the set I did not need.
If I was not interested in playing on a 12-wide board, I could glue two of
the Pawns on a pedestal (e.g. two stacked Draughts chips of judiciously
chosen size, or just a piece cut from a cylindrical wooden stick), and have another pair of exo-pieces (e.g. usable to represent Ferz in Shatranj, or Commoner in Knightmate).

H. G. Muller wrote on Mon, Oct 6, 2008 04:11 PM UTC:
Fergus Duniho:
| Very Good. Zillions of Games and Game Courier both provide software 
| support for numerous variants. ChessV supports several games. Shogi, 
| Chinese Chess, and selected other variants have dedicated programs to 
| play them.

You forget to mention WinBoard and Fairy-Max!

[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Oct 6, 2008 05:19 PM UTC:
OK, let us continue the discussion about FEN here, then.

To Fergus:
What you use in Game Courier is indeed very close to what I had in mind.
In particular allowing a multi-character representation of a piece by
parenthesizng it. You use braces {}, I proposed normal parentheses, but
the idea is the same. You also allow for variant-dependent meaning of the
single-letter codes.

The main question that arises when defining a FEN format that can be
applied as universally as possible over all variants, is which letters
should have predefined meanings under which conditions. And in how far
these conditions should be recognizable from the FEN itself.

I would be inclined to pre-define as few characters as possible, using
only the board size as an indication of which default assignments are in
force. For 8x8 these would be the standard Chess pieces, for 10x8 A and C
would be added for Archbishop and Chancelor. For 9x9 we would have the
Shogi pieces (S=Silver, G=Gold, L=Lance next to PNBRK, where the latter
would now refer to the Shogi version of P and N, while B & R would be
subject to Shogi promotion rules), and for 9x10 Xiangqi pieces. Crazyhaue
and Shogi would use the postfix-'~' and prefix-'+' conventions for
promoted pieces.

This covers the most common variants. Perhaps Shatranj is a bit
short-changed, because it shares 8x8 with Chess. To fix that we could add
E and F for Alfil and Ferz to the 8x8 default set. I tend to think that it
would be unwise to try pre-defining pices for other variants, as it would
not be possible to do it for all. So I would prefer treating all other
variants symmetrically, and do it for none of them. This would mean that
all other pieces would have to be described by a multi-letter code. Some
variant of Betza notation could be well suited to this, as for the more
common fairy pieces this results in quite short names.

[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Oct 6, 2008 05:29 PM UTC:
Indeed, the prove of the variant is in the playing, as the proverb says.

And this is exactly what the Superchess endeavor is attempting. Oct 12
there will be a gathering of some 40 people that will play Superchess all
day. George might not think much of it from a design or originality point
of view, and my personal preference would go to other vaiants as well. But
this variant is being played. Many others hardly so. I think that makes a
HUGE difference...

[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Oct 6, 2008 09:34 PM UTC:
Rich Hutnik: 'Why not consider it the same with chess variants?'

Because multiple promotions are only a theoretical possibility, 
which never happens in practice.

I don't see why you keep dwelling on this. What are you trying to
achieve? Find an explanation why no one plays the Mad Queen game, and
Chaturanga dominates the World?

Lack of multiple Queens in piece sets for Chess-type games have ZERO
effect on their popularity. End of story, problem solved. Now let us
concentrate on aspects that DO have an effect.

Falcon Chess. Game on an 8x10 board with a new piece: The Falcon. (10x8, Cells: 80) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Oct 6, 2008 09:44 PM UTC:
You keep stressing how many variants are covered by your patent.

More relevant would be: how many of those are actually played? How many of these variants have regional or national championships for them? On how many internet servers can people play these variants? How many people World-wide have equipment to play any of thee variants?

It seems to me that all this is a lot more important than wether you cover a billion or a trillion variants...

[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Oct 6, 2008 10:13 PM UTC:
Standards cannot be enforced, but they could be encouraged more than they
are now.

We should not underestimate the impact of this website on the variant
community. With respect to piece naming we could list 'recommended'
names, and in the description of all variants we could in the setup
description use recommended names only. If the names given to those pieces
originally does deviate from the standard names, we could mention that in a
footnote.

We could conspire to have most variant-playing software use the standard
names, and standard letter-codes derived from those standard names. I
certainly could do that for WinBoard, which is currently the only free
general variant-supporting GUI in existence.

As to piece symbols: We could decide on standard symbols, and make a
true-type font available. WinBoard could then use this font to represent
the pieces, and create diagrams containing these pieces. We could replace
the wide variety of diagram styles present in TCVP all by diagrams using
the standard symbols.

H. G. Muller wrote on Tue, Oct 7, 2008 08:38 AM UTC:
About FEN standardization:

I agree with most of what Fergus says. The purpose of a FEN is to express
the game state, not describe the game.

I would not be against having the FEN unambiguously desrcibe the board,
though. So I would like to outlaw 'sloppy' FENs, which do not fill out
the ranks completely, and use the rank-separator '/' to imply the rest
of the rank is empty. This would only invite undetectable errors.
Preferably a FEN reader should be able, once it knows the variant, to
detect omissions or spurious characters in the FEN.

I would also like to fix the use of various types of parentheses: The
brackets [] should preferably be reserved for delimiting an optional
holdings field in the FEN, for games with piece drops like Crazyhouse and
Shogi. For delimiting multi-character piece names, we coud use braces {}
to delimit arbitrary names referring to the legend, like {griffon} or
{Griffon}. The first letter decides if the piece is white or black,
through being upper or lower case, respectively. Upper and lower case in
the rest of the name are at the disposal the creator of the legend to
enhance readaility, e.g. {MurrayLion}, {highPriestess}. Normal parentheses
() I would like to reserve for delimiting fully descriptive piece
indications, like (BN), according to some nearly universal
(variant-independent) notation similar to Betza notation.

The Cannon indeed seems to have the strongest claim on the letter C
(altough most people call it Pao...). But we should not be blind to
reality. Any 'standard' that will not allow Chancellor to be indicated
by C in Capablanca-type variants is still-born. Too many people and too
much software World wide is already using the FENs with the C in it. So a
standard that outlaws this might as well be referred to the garbage bin
immediately. The most reasonable compromise that makes the standard viable
seems to be the use of board-width dependent defaults, and predefine A=(BN)
and C=(RN) on a 10-wide board. This hurts no one: variants that name these
pieces differently can simply use (BN) and (RN), and are off no worse than
they would have been when A and C were not predefined.

Actually we might even go a step further, and allow the variant-specific
legend to define any one-letter code as it pleases, just as it can define
multi-letter piece names. I am not even sure if there would be any reason
to protect the letters for the orthodox Chess pieces from redefinition.
The FEN reader could always look in the legend first to see what a letter
means. If the letter is not listed, the defaut meaning (if any) would
apply. If there is also no default in force, we have a FEN syntax error.

H. G. Muller wrote on Tue, Oct 7, 2008 10:18 AM UTC:
The CVML discussion is hard to follow for me, as I don't know Game
Courier. When I play Chess Variants, I use the WinBoard GUI. WinBoard
supports local play against a computer opponent (if you have an AI
available that can play the variant), play on an Internet Chess Server
against any other entity that is logged in on that server, play of an AI
against the ICS, local play between two AIs, or can be used as a game
viewer/editor.

Now ICS (like FICS and ICC) only support a very limited number of
variants, and the protocol with which they operate is not suitable for
variants in general. There is a server where you can play the unspeakable
10x8 variant, but it uses and entirely different protocol. I have written
a back-end to WinBoard to communicate in this protocol, so WinBoard can be
used as a GUI to play or have computer AIs play on that server. In cases
like these, the communication channel is a TCP link to a dedicated port of
the server.

What is the underlying medium that Game Courier uses to connect players
with each other? Is there a specialized server somewhere, or can any POP
server act as such (and would a dedicated account be needed on the POP
server, in that case)? What communication channel is used, and what is the
protocol on this channel? If I new that, it might be possible to directly
connect WinBoard to the system, so that people can play through a regular
GUI.

H. G. Muller wrote on Tue, Oct 7, 2008 05:20 PM UTC:
To Rich:

WinBoard is an application that runs locally on your PC, and displays a
Chess board there. You can enter moves by typing them, but the more common
way is to just drag the displayed pieces with the mouse to the square where
you want to move. You can put WinBoard in a mode where it accepts every
move (of the side that is to move) or where it checks if the move is
allowed. The latter of course only works for variants WinBoard knows the
rules of.

WinBoard is limited to rectangular boards, knows 22 piece type, can handle
variants with piece drops. Amongst the fully supported variants are Chess,
Shatranj, Xiangqi and Shogi.

WinBoard merely is a GUI, i.e. an I/O device for Chess moves, and it
takes care of such tasks as saving the game on a file in standard
(Human-readable) format, loading saved games for viewing, copying and
pasting games and positions to and from the clipboard. It communicates the
moves to entities that play the game. Locally this might be other processes
that think up the moves, with which it communicates in a text-based
standard language known as 'WinBoard protocol'. (The 'Chess-Engine 
communication protocol you found the link for) This protocol is the
current 'market leader', and there are litterally hundreds of engines
that understand it. The 'Universal Chess Interface' is a recent
competitor of WB protocol. Adapters between UCI and WB protocol exist in
both directions.

UCI is rather limited in its support for variants: It does go as far as
Chess960, but I believe Crazyhouse is already 'a bridge too far'.

WinBoard can also act as a 'client' to communicate with a Chess Server
over the internet (e.g. FICS, ICC). For this it uses a different protocol
(ICS protocol), which does supports 'variants' like losers and atomic,
and even Shatranj. But nothing beyond 8x8 boards.

Currently WB cannot be used to login on the CV pages. But if I knew the
protocol needed to play on the CV pages, I could make WinBoard support
that too. I have done the same thing for the Unspeakable-Variant server.
What I understand from Fergus, playing on the CV pages involves polling
html pages until you see a change, and then uploading your own move over a
TCP link. (Correct me if I am wrong, Fergus!)

Well, as they say, one program paints a thousand words, so if you really
want to get an idea what WinBoard is, you can try it out by downloading
from http://home.hccnet.nl/h.g.muller/WinBoard_F.zip , and clicking the
'Fairy-Max' icon in the downloaded folder. You can then immediately
start playing the Mad-Queen game, or select one of the variants in the
menu that the Fairy-Max engine (included in the download) plays, like
Knightmate, Capablanca, Shatranj, Falcon, Superchess, Courier. (Note it
does not nearly play all variants supported by WinBoard. If you want to
play Xiangqi, Shogi, Crazyhouse or Losers you would have to download other
engines for this.)

H. G. Muller wrote on Tue, Oct 7, 2008 05:48 PM UTC:
What other games do you have in mind? Checkers and Go? Bridge and Poker? Of
course any program can be changed to do anything else, but the question is
if this is useful. The current WinBoard is designed for Chess-like games,
and rests on the assumptions that there are only two players, which
alternate turn, in which they move only a single piece to a square that is
empty or occupied by an opponent. 

Normally there are no side effects to a move. The protocol does not
provide a mechanism to specify side effects, it just specifies a From and
a To square. The rare side effects that occur in Chess (castling and e.p.)
are implied. Only for promotions the promotion piece is specified.

For games like Checkers and Go you basically would have to teach WinBoard
what the side effects of the moves are (capture of opponent pieces on
jumping or surrounding), and this would be easier if you were using a
dedicated GUI for Checkers or Go. For games with hexagonal or triangular
boards the required graphics would be so different, that it also makes no
sense to integrate it in the same GUI.

H. G. Muller wrote on Tue, Oct 7, 2008 06:55 PM UTC:
The problem is that if two games are too different, there is really nothing
gained by having them handled by the same GUI. You would basically get two
completely independent programs, that are both put in the same executable,
one of them serving no other purpose than occupying space while the other
is running. Tht becomes progressively worse if you want to handle more
unrelated games. They will each need their own code for game notation, for
parsing games, for describing moves, for performing moves on the screen.

For Chess variants it is very useful that they are all handed by WinBoard.
Most of the time the fact that you play a variant merely means the
parameters for the board format have to be adapted, and a few pieces are
replaced by a few others. With a limited set of unorthodox pieces a far
greater number of variants is automatically supported.

Of course you could make a client that is completely dumb, and does
nothing more than record mouse clicks and send tose to the server, and
display the board as a table of bitmap pictures, where it gets sent a
completely new boarad position (adapting the contents of every cell of the
table) when anything changes. And when the user asks to save the game,
relay the request and have the server send a text string that represents
the game, and save that. But I would not consider such a simple thing a
GUI.

H. G. Muller wrote on Tue, Oct 7, 2008 07:39 PM UTC:
Fergus:
| That is wrong. A player views a board in his web browser, enters a move
| in a form, then submits the form. Game Courier then displays the move 
| or tells the player that the move is illegal. If the move is not found 
| illegal (either because it is not or because the preset doesn't enforce
| rules), the player then clicks a form button to verify that this was 
| his intended move. The player can find out when it is his move again in
| one of three ways: (1) Get an email, (2) check the logs page, or (3) 
| let the Game Courier page reload at intervals (by means of Javascript) 
| until it is his move again.

Well, it is not that wrong: the latter is what I mean by polling, you
either have to poll your POP server to see if you have mail, or keep
requesting the page over the http port. The latter you could do by hand,
by clicking the browser refresh button, or have the browser programmed to
do it by JavaScript. Or have an independent program that you wrote
yourself (not a browser) do it.

This is different from the way the normal ICS protocol works, where the
TCP link to the server is two-way, and the server actively sends a signal
to the client when the opponent moved. Especially in bullet games you
would have to poll so frequently to get decent response times that it
would likely overload the server.

As to submitting a form: doesn't the browser simply open a TCP link to
port 80 of the server for that, and send it an http packet with arguments
appended to a file name (after a question mark, or something like that),
which the PHP server can interpret?

If I would know what text messages are interchanged over the various TCP
links that the browser opens to the server (and which ports it uses to
establish these links), it is easy enough to write a backend for WinBoard
that generates and interprets these messages. 

If I would know how to use Game Courier, I would simply use a packet
sniffer like WireShark to record what went over the line when I was doing
it; this is how I did it for the Unspeakable-variant server. But there I
knew how to operate the client to play on the server (which in that case
was a Java program, that was downloaded by the browser). But I had the
disadvantage that I was not able to pump the programmer for information.
;-)

Is the form that you send to enter the move variant dependent, or always
the same? I suppose the move syntax itself could be variant dependent. Or
is it simply long algebraic notation? How do you learn what the
opponent's move is. Do you get sent a new board position, and do you have
to decode the move from that by differencing it against the previous
position? Or is the move itself somewhere on the page, and if so, in which
format?

H. G. Muller wrote on Tue, Oct 7, 2008 07:51 PM UTC:
Reinhard: 'But that, Harm, is just the way SMIRF works'

But I suppose the Smirf GUI does no somethings about (Full)Chess, to help
it understand the moves. Or do you really have to send, say, a castling as
a pait of moves (e1g1,h1f1)? If you would use the Smirf GUI for 8x8 Go,
could you make the Go engine send a list of moves that makes it clear to
the GUI which stones have to disappear from the board. Could the engine
even tell the GUI to properly perform its own move, if that inolved
capture of a number of stones, without knowing that it is playing Go?

It would highly surprise me if the way you encode moves would be general
enough to handle that...

H. G. Muller wrote on Tue, Oct 7, 2008 09:18 PM UTC:
Rich, why not simply send the FEN of the position you want to move to, in
stead of sending a move? This completely eiminates the problem of encoding
moves (which for different gaes might need a very different amount of info
to be trasmitted), and reduces the problem to encoding game states (which
you need to have a solution for anyway).

H. G. Muller wrote on Tue, Oct 7, 2008 09:54 PM UTC:
Fergus, I have gone to the GC preset for normal Chess, played a few moves
in solitaire mode, and then asked for the source code of the page.

I suppose the move you referred to is the one in the form that is
displayed below the board, in the SELECT NAME='movenum' field (which
triggers the message 'use this menu to select a move to view'). So what
the GUI backend would have to do is scan the downloaded html code for this
SELECT tag, and then look for a following OPTION tag before the
corresponding /SELECT tag, which end in SELECTED DISABLED. After this tag
if finds the most recent move, preceeded by a number, and possibly some
periods (if it is a black move).

The back-end should keep trying this (every second, or every 10 seconds)
until it sees an opponent move there, extract the coordinates of From and
To square from the move, and send those to WinBoard.

When WinBoard sends a move to the back-end, the latter must translate the
WinBoard move into GC syntax by adding the hyphen, and then mimic the
submission of the form containing it. To see how the browser submits the
form, I will have to use the packet sniffer. I will try this tomorrow.

So it seems the basics are quite simple to achieve. The more tricky part
would be to set up the game: if the uer starts up WinBoard, with the GC
adapter back-end as pseudo-engine, the selection of a new variant from the
WinBoard menu, and requesting a new game in it, should somehow lead to the
creaton of a web page on the GC server for this new game. As I have only
tried solitaire mode, I have no idea how this works yet. I guess at some
point it would be needed to transmit the name of your intended opponent to
the server. I could have the pseudo-engine ask for a name through WinBoard
(WinBoard can pop up an input dialog box on request of the engine), and
then have the pseudo-engine transmit that name to the GC server in a
context that would initiate a game against that opponent.

So the whole process would become as follows:
1) Start up WinBoard in the mode with computer opponent, but in stead of
entering the name of a true engine, request to play against the GC
pseudo-engin.
2) The pseudo-engine on startup (or in fact on the starting of any new
game) downloads a few pages from the GC server, to find out which
opponents are available for the currently selected variant.
3) It presents the list of available opponents in a popup dialog box, and
the user could type the number of the opponent he wants to play, or a zero
if he wants to be added to the list himself.
4) WinBoard would relay the typed number to the pseudo-engine, which would
perform the required communication with the GC server to initiate the game
5) After that, it would be a simple exchange of moves, as discussed
above.

This sounds quite feasible.

Main disadvantage would be the huge waste of bandwith: while the
pseudo-engine was polling for a new move, it would receive this enormous
html page with the board display and rules of the game each time it polls,
while it needs only 4 characters of it.

Cavalry Chess. A once popular variant from the 1920's where every piece has additional jumping moves. (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Oct 8, 2008 06:58 AM UTC:
I haven't playtested that, but I think what you say makes sense: the massacre performed by the Bison was due for a large part to them attacking pieces that were still trapped on the back rank (and in particular a trapped King). So perhaps shifting the Pawns in the opening array one step forward would solve the problem: no pieces will be trapped, and the Bions cannot attack any piece in its starting location without being exposed to Pawn fire. The only problem the side defending against the Bisons has to worry about would be to maintain control over every square on second and third rank, which does not sound too difficult.

Perhaps I should test the Bison from this setup to get a better idea of its middle-game value.

Note that a Falcon, which has the same target squares as the Bison, but does not jump (athough due to its multi-path nature it cannot be blocked very easily) has the same value as a Rook, and the Bison will certainly be stronger. And the Cavalry Knight will be about a Knight stronger than that, plus possibly some synergy because of highly increased manouevrability. (The Bison is really an awkward piece, with all its moves being quite distant.)

[Subject Thread] [Add Response]
H. G. Muller wrote on Wed, Oct 8, 2008 10:31 AM UTC:
Rich: If you think FENs are too large, (which to me seems a gross
exaggeration at the current state of technology; note that FENs involve some inherent compression, as stretches of empty squares are indicated by a single number), an alternative would be to only transmit the difference between the previous game state.

Note that the FEN standard for normal Chess, unlike what Fergus wrote,
does contain a full description of e.p. and castling rights. The only thing that is missing is the possibility to recognize game-state repetitions in connection with 3-fold repetition draws. In Chess this does not affect legality of a move; in Xiangqi this might be different. But I think that is not really important for communicating moves between entities that play or display, as they can remember the game history. This is the issu if the protocol should be stateless, or not. UCI is an example of a stateless protocol (it sends the engine the entire game history plus opening position for every move the engine has to make), and I think in general this is a very bad idea. It just makes the protocol awkward and cumbersome. Fergus has good reason for wanting the Game Courier protocol to be stateless, though: you have to be able to resume a game halfway, with a freshly-started browser. ICS protocol is not stateless, but solves this problem through bidirectional communication: although the board position is transmitted with every move, the game history is only available on explicit request. So normally, you don't request it, but if you enter a game halfway (recognized by the fact that the move number of the first move you got sent was not 1), you have to make a one-time request for the game history.

As in most games only a small fraction of the cells change state, (this is even true in games like Reversi and Go), you could just send a list that names the altered cells and their new state. E.g. 'e2=0,e4=P;' for e2-e4, and 'e1=0,h1=0,f1=R,g1=K;' for O-O. This would work over an exremely wide range of games. As in many games moving a piece from one cell to another is the only thing that happens most of the time, it can be very useful to make 'x-y'; a short-hand notation for 'x=0,y=P;', when P was the old state of cell x.

H. G. Muller wrote on Wed, Oct 8, 2008 03:47 PM UTC:
I think we should clearly separate communication needs from storage needs.
PGN as it exists is a great standard for Chess variants for storing games.
And indeed it is what WinBoad uses. But the current standard heavily leans
on Standard Algebraic Notation (SAN) for the moves. And SAN is designed to
be convenient in games with many different pieces, so that the combination
(Piece, ToSquare) hardly ever needs disambiguation. SAN has the
disadvantage that it is non-trivial to parse, and the semantics can only
be extracted in the context of the current position. This forces all
entities converting SAN to an explicit move to keep track of game state.

All this is a consequence of SAN being designed for use by Humans. For
communication between computers, Chess moves are much more efficiently
encoded as (FromSquare, ToSquare), and indeed this is what WinBoard
protocol does. For games like Checkers, where all pieces are identical,
this is more convenient than SAN anyway. Side efects in Chess are rare,
(limited to castling and e.p. capture), and fortunately the moves with
side effects can be recognized from the base move of Pawn or King. In
Chess960 castling this is not always true, and castlings need a
conventional, rather than descriptive, notation. Next to the O-O and
O-O-O, the King-captures-own-Rook convenstion can be used for this. But
all these trcks critically depends on the communicating entities having
knowledge about the variant, so that when they encounter a Pawn capture to
an empty square, or a double sideway King step, or a King that captures its
own Rook, they do not take the move at face value, but know what is meant
by it. Furthermore, for Humans, (FromSquare,ToSquare) is more difficult to
read than SAN.

If you want to have a system of describing moves that would work for any
variant, you cannot rely on the communicating entities to recognize moves
that imply side effects. There is no limit to the number of cells that
change state, there is no conservation law on the number of pieces on the
board. You ould have to spell out everything. e.g. in Go you would have to
tell which stones have to be removed, although this is fully implied by the
drop coordinates. But there might be Go varints where not all these stones
re removed, and where the mover has to chose a subset of those. So the
move format will have to be able to specify this. This makes the format
too cumbersome to use for Humans, who prefer compactness rather than
explicit mentioning of side-effects that were already fully implied.

In my Live Chess-Game Viewer (see
http://home.hccnet.nl/h.g.muller/goths.html for a short demo) I opted for
a completely dumb system. The JavaScript code that manages the page nows
nothing about chess, and interprets the moves it fetches from the server
as simple cut/paste instructions which copy the contents of one square to
another and then make the source square empty. Which is quite efficient,
because it is exactly what the archetypal Chess move does. The viewer does
not even care who's turn it is. But to make sure that castlings, e.p.
captures and promotions can be viewed, the entity sending the moves must
slip in extra moves for the side effects. So an e.p. capture is
transmitted as two steps, e.g. e4-f4 and f4-f5, while for castling the
Rook move has to be explicitly added. To define the promotion piece,
another move format is added.

[Subject Thread] [Add Response]
H. G. Muller wrote on Wed, Oct 8, 2008 07:42 PM UTC:
Has there been any investigation on the piece value of hoppers at all?

You state that Grasshopper is better than Cannon (Pao), but I have strong
doubts about that. Grasshopper has at most 8 targets, as it reverts to
leaper (stepper, actually) after the hop. Cannon has 4 directions, but
remains slider. The reasoning you employ (8 directions) would imply
Commoner > Rook, which we know to be not true.

[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Oct 9, 2008 09:34 AM UTC:
Fergus: | I have tried running Winboard-F with Fairy-Max, but when I select a | variant, it frequently tells me that the variant is not supported by | Fairy-Max 4.8C. What is the latest stable version? How can I make sure | I have it installed? The latest version (now on my website) would say Fairy-Max 4.8E and in thw WinBoard 'Help->About...' menu WinBoard 4.3.15h. But none of the earier versions is particuarly unstable. The problem is merely that Fairy-Max indeed does not support all variants. You should realize that WinBoard and Fairy-Max are completely independent developments, and that Fairy-Max is merely one of the hundreds of engines that can be run under WinBoard. (Most of these play only normal Chess, of course.) I agree that the response of WinBoard, to simply exit if one requests an unsupported variant, is perhaps a bit harsh and user unfriendly. I guess this stems from the time the variant could not be changed at run time through a menu, but only on startup through a command-line option. In that case there was no way to give a new variant if the one specified in the command-line option was not supported by the engine, so no fix was possible. I will put it on my to-do list to 'grey out' the variants the engine does not support in the 'New Variant' menu. As a temporary measure I will maintain the error popup for unsupported variants, but make it a non-fatal error, and simply keep the old variant in force if the newly selected variant is unsupported by the engine. (Treat it equivalent 'pressing 'Cancel'. The version of Fairy-Max in the download only has definitions for the variants: normal, shatranj, courier, knightmate, capablanca, , falcon, cylinder, berolina, super. To play other variants with WinBoard you would have to download other engines. e.g. Pulsar by Mike Adams (losers, suicide/giveaway, 3checks, crazyhouse, atomic) ( http://www.adam16mr.org/pulsar.html ) TJchess by Tony Hecker (separate versions for crazyhouse, shogi, xiangqi, capablanca) ( http://tonyjh.com/chess/ ) SMIRF by Reinhard Scharnagl (e.g. CRC, FRC, Capablanca, Janus) ( http://www.chessbox.de/ , but needs adapter which was included in the WinBoard download ) And of course add shortcuts to start up WinBoard using those engines, or start WinBoard without the aid of any shortcut, and select the name of the engine you want (or type it) in the WinBoard startup dialog.

[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Oct 9, 2008 10:49 AM UTC:
I don't quite understand the description of the system you give on the
IAGO site. It seems there is a typo in the captures description.

Could you give examples of how you would denote a Checkers capture, a Go
capture of a chain of 3 stones, and a reversi move that flipped 3 stones.
How would you denote a capture in the Checkers variant which stacks the
tompost chip of captured stacks under the stack that captures them? (e.g.
if I have a stack of 2 white chips on top of 3 black chips, and would jump
with this stack over a stack that had 1 black chip on top of a white chip,
taking away the black one, leaving behind the white one, landing on its
target square as a stack of 2 white chips on top of 4 back chips.)

Another point: To call this 'a FEN for movement' is truly ridiculous.
FEN means Forsyth-Edwards notation, and neither Forsyth nor Edwards have
anything to do with it. It is a bit like calling the wheels of your car
'Dollar bills for driving'.

[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Oct 9, 2008 01:00 PM UTC:
OK, I have made new version of WinBoard, that acts a little more user
friendly if you select a variant that the first engine does not support.

I did not find an easy fix for the second engine; this is only used in the
mode where you have two engines play each other, and not initialized, or
even touched before you actually select 'Two Machines' mode. So you
might change the variant without WinBoard being aware which variants are
supported by the second engine. And this should not be considered an error
anyway, because you might not even want to use the second engine. (It would
be very annoying if you have to specify an engine that you don't want to
use.)

Anyway, thanks for pointing this out. The updated version (WinBoard +
Fairy-Max packaged together) can be downloaded from:

http://home.hccnet.nl/h.g.muller/WinBoard_F.zip

[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Oct 9, 2008 03:57 PM UTC:
If I look on the ICC server, it seems that Crazyhouse is by far the most
played variant. Despite the fact that it is very different from normal
Chess. Chess960, which is much closer to normal Chess, is rarely played.
Shatranj is virtually not played at all.

[Subject Thread] [Add Response]
H. G. Muller wrote on Fri, Oct 10, 2008 01:56 PM UTC:
If you would view my entire forelast message, you will also see at the bottom the links to some other engines, amongst which TJshogi and TJxiangqi. :-)

GNU Shogi will not directly run under WinBoard. (It is not truly WB
compatible, although the Chess engine from which it was derived was.) I
did succeed in running GNU Shogi under WinBoard with the aid of a general adaptor program that was configured for interchanging the command 'black' and 'white'. The complete setup for this is still on my website as

http://home.hccnet.nl/h.g.muller/DemoPack.zip

This contains a quite old WinBoard version, though. I am also not sure if
you can automatically play TJshogi gainst GNU Shogi, as I am not sure if
they both use the way to indicate square coordinates. TJshogi might use a1
where GNU Shogi uses 9a. Now WinBoard has a command-line option to tell it
which coordinates to use, but currently will use the same coordinates for
both engines. This is another thing on my to-do list, to make this
separately configurable for each engine.

The DemoPack also contains the executable of HoiXiangqi (the website of
which seems to have diappeared).

25 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.