Sam has closed his piano and gone to bed ... now we can talk about the real stuff of life ... love, liberty and games such as Janus, Capablanca Random, Embassy Chess & the odd mention of other 10x8 variants is welcome too
For posting: - invitations to games (you can also use the New Game menu or for particular games: Janus; Capablanca Random; or Embassy) - information about upcoming tournaments - disussion of games (please limit this to completed games or discussion on how a game has arrived at a certain position ... speculation on who has an advantage or the benefits of potential moves is not permitted while that particular game is in progress) - links to interesting related sites (non-promotional)
O čem je toďten plk: Code to generate CRC / FRC FEN strings
<well here is that part of code, with comments in mixed German and English, which creates FEN for FRC 1...960 or CRC 1...48000. The filtering of unwanted positions has to be done later. The castling rules are comparable to FRC, I do not know, what I shoul show additionally to that.
if (istCRC) {
// Vorzeichenwechsel beim CRC
nr = -nr;
// decide whether the queen should be set 1st
bool q_first = ((nr % 2) != 0);
nr /= 2;
// set the 1st piece by dividing 5 on bright
// (targeting at first row, white side)
PlatziereInFen(nr % 5,
q_first ? (DAME_SYM ^ TOLOW)
: (ERZBISCH_SYM ^ TOLOW), 0);
nr /= 5;
// set the 2nd piece by dividing 5 on dark
// (targeting at first row, white side)
PlatziereInFen(nr % 5,
q_first ? (ERZBISCH_SYM ^ TOLOW)
: (DAME_SYM ^ TOLOW), 1);
nr /= 5;
}
// set the bishop by dividing 4 on white fields
// (targeting at first row, white side)
PlatziereInFen(nr % 4, (LAEUFER_SYM ^ TOLOW), 0);
nr /= 4;
// set the bishop by dividing 4 on black fields
// (targeting at first row, white side)
PlatziereInFen(nr % 4, (LAEUFER_SYM ^ TOLOW), 1);
nr /= 4;
// set the queen or chancellor on a free field
// dividing 6
PlatziereInFen(nr % 6,
istCRC ? (KANZLER_SYM ^ TOLOW)
: (DAME_SYM ^ TOLOW) );
nr /= 6;
// calculate knight positions by nr and set them
pos = knight_pos[nr % 10];
for (int bit = 5; --bit >= 0; ) {
if ((pos & (1 < bit)) != 0)
PlatziereInFen(bit, (SPRINGER_SYM ^ TOLOW));
}
// set the remaining pieces, rooks and king
PlatziereInFen(2, (TURM_SYM ^ TOLOW));
PlatziereInFen(1, (KOENIG_SYM ^ TOLOW));
PlatziereInFen(0, (TURM_SYM ^ TOLOW));