#include <sstream>
#include "bitcount.h"
+#include "misc.h"
#include "movegen.h"
#include "position.h"
#include "psqtab.h"
-#include "rkiss.h"
#include "thread.h"
#include "tt.h"
#include "uci.h"
<< std::setfill('0') << std::setw(16) << pos.st->key << std::dec << "\nCheckers: ";
for (Bitboard b = pos.checkers(); b; )
- os << UCI::format_square(pop_lsb(&b)) << " ";
+ os << UCI::square(pop_lsb(&b)) << " ";
return os;
}
void Position::init() {
- RKISS rk;
+ PRNG rng(1070372);
for (Color c = WHITE; c <= BLACK; ++c)
for (PieceType pt = PAWN; pt <= KING; ++pt)
for (Square s = SQ_A1; s <= SQ_H8; ++s)
- Zobrist::psq[c][pt][s] = rk.rand<Key>();
+ Zobrist::psq[c][pt][s] = rng.rand<Key>();
for (File f = FILE_A; f <= FILE_H; ++f)
- Zobrist::enpassant[f] = rk.rand<Key>();
+ Zobrist::enpassant[f] = rng.rand<Key>();
for (int cr = NO_CASTLING; cr <= ANY_CASTLING; ++cr)
{
while (b)
{
Key k = Zobrist::castling[1ULL << pop_lsb(&b)];
- Zobrist::castling[cr] ^= k ? k : rk.rand<Key>();
+ Zobrist::castling[cr] ^= k ? k : rng.rand<Key>();
}
}
- Zobrist::side = rk.rand<Key>();
- Zobrist::exclusion = rk.rand<Key>();
+ Zobrist::side = rng.rand<Key>();
+ Zobrist::exclusion = rng.rand<Key>();
for (PieceType pt = PAWN; pt <= KING; ++pt)
{
if (!can_castle(WHITE) && !can_castle(BLACK))
ss << '-';
- ss << (ep_square() == SQ_NONE ? " - " : " " + UCI::format_square(ep_square()) + " ")
+ ss << (ep_square() == SQ_NONE ? " - " : " " + UCI::square(ep_square()) + " ")
<< st->rule50 << " " << 1 + (gamePly - (sideToMove == BLACK)) / 2;
return ss.str();