Agreed.
I think the RHP format is either smith notation or some close variant of the same ... http://www.chessclub.com/chessviewer/smith.html
While that makes it easy to allow javascript to understand the games I appreciate it makes it a lot harder for us humans who are accustomed to the more standard notations.
There is a nearly-standard notation on the analysis board and game history page. It's actually quite hard to reduce that notation (Ng1f3) to the standard form (Nf3), because you have to know what moves are legal (including considerations of en passant, pawn promotion and not leaving the king in check) before you can know how much to leave out. There is standard library code to do this, but I suppose it could be quite tricky to integrate with the existing server code.
I'm not sure why a completely different notation (g1) - (f3) appears at the foot of the playing screen. It does seem that even the "long" algrebraic would be more useful, with the move number and the check (or mate) indictator.
Any comments Russ?
Originally posted by RolandYoungI'm not entirely sure what you mean here, but I'm guessing you mean that the background work is easier with this (Ng1f3) notation.
It's actually quite hard to reduce that notation (Ng1f3) to the standard form (Nf3), because you have to know what moves are legal (including considerations of en passant, pawn promotion and not leaving the king in check) before you can know how much to leave out.
That may be the case, but what runs in the background, doesn't necessarily have to be what's shown. All good database designs use FieldIds, which are very rarely visible to the user (usually something more descriptive shown), but are essential to the smooth working of the db.
It would be a nice addition to be able to choose what notation you view.
D
I'm writing a Chess database Java application, dealing with ambiguity is a headache, easy for humans to do on inspection, very time consuming to code...
To remove the g1 Ng1f3 you have to work out and search all the surrounding squares that can access that square with a knight move and check there is no knight there (an if there is you have to put in a column letter in anyway, possibly even a column and a number anyway!), which is relatively complex in code and really does not achieve much. It's a double headache if you then have to be able to then import Nf3 because you then have to search all the squares again to find where the knight is coming from.
Ng1f3 compared to Nf3 - makes no difference to a human, apart from a slight asthetic look, makes a huge difference to a computer...gets even worse when people start throwing in random ! and ?....
My program will have to be able to deal with all this as I want to be able to import (eventually) the scruffy kind of PGN humans produce (as oppsed to the beutiful export PGN russ produces 🙂, which it can do now) but as Russ is not importing any games your asking for a lot of code (already implimented in the background to an extent as you can not make illegal moves but still) for not much difference if you want this...
As for why Russ uses (square)-(square) I'm not sure but it's highlighted on the board so why ever look at it unless your trying to write the SAN down for other purposes and are too lazy to work it out yaslef (😉). If thats the case you can get a whole PGN list (alas in a non ambigious format 😉) from the board history screen.