crazywa.git
8 years agoImplement drop restrictions for Shogi
H.G.Muller [Wed, 28 Dec 2016 19:39:23 +0000]
Implement drop restrictions for Shogi

The various routines for dropping pieces now repect the rules that
pieces should not be dropped where they have no moves.

8 years agoSuppress check test after null move
H.G.Muller [Wed, 28 Dec 2016 18:26:47 +0000]
Suppress check test after null move

After null move we should never be in check, but the test for determining
it would use variables that might not be initialized (like to-square).
Make sure we indicate there is no check (also in checkDist, which is used
testing for distant checks).

8 years agoImplement castling
H.G.Muller [Wed, 28 Dec 2016 16:40:27 +0000]
Implement castling

MoveGen() now also generates castlings. Legality is tested by the kludge
of replacing the Rook by a second King during the (early) move generation
in the next ply. MakeMove() is refactored to make sure both King and Rook
victim are saved. In addition promotion is now implemented by OR'ing the
promoInc into the piece code,tomake the engine resistent to promoting an
already-promoted piece (e.g. due to hash-move mixup).

8 years agoPrint setup and piece commands in engine-defined variants
H.G.Muller [Wed, 28 Dec 2016 16:01:16 +0000]
Print setup and piece commands in engine-defined variants

A setup command with the start position is now sent whenever a variant
is initialized, and ptc[] contains a piece-to-char table for that variant.
In addition, piece commands are sent when betza[] contains move definitions
for that variant.

8 years agoReorder pieces, and define values for all variants
H.G.Muller [Wed, 28 Dec 2016 15:47:23 +0000]
Reorder pieces, and define values for all variants

Lance now immediately follows Pawn, so that they can be taken out of the
droppable set together when calculating evasion drops on last rank. The
downside is that the Lance will participate in mini- and Judkins' Shogi
as a non-present piece. The piece IDs of Wa Shogi are changed to conform
with Sjaak II's assigment,and the startup FEN is changed accordingly.
Piece values are assigned for all variants.

8 years agoMake variants also accessible through systematic names
H.G.Muller [Wed, 28 Dec 2016 14:17:18 +0000]
Make variants also accessible through systematic names

The engine-defined variants are now also announced as 5x5+5_shogi etc.,
and such names are matched based on the board parameters in the variant-
definition table.

8 years agoPut Tori Shogi 6th in variant-description list
H.G.Muller [Wed, 28 Dec 2016 14:10:53 +0000]
Put Tori Shogi 6th in variant-description list

This to put all variants that have non-Pawn pieces with drop restriction
contiguously.

8 years agoFix reading of Shogi-promoted pieces in FEN
H.G.Muller [Wed, 28 Dec 2016 14:05:17 +0000]
Fix reading of Shogi-promoted pieces in FEN

The '+' sign in FENs was considered a digit, and thus did not have the
intended effect.

8 years agoAdd and initialize some more piece-square tables
H.G.Muller [Wed, 28 Dec 2016 13:59:58 +0000]
Add and initialize some more piece-square tables

The number of PST in increased to 9 pairs, and they are initialized
to be useful for various groups of pieces (e.g. Shogi generals).

8 years agoImplement randomizing
H.G.Muller [Fri, 21 Oct 2016 12:57:36 +0000]
Implement randomizing

The first 10 half-moves are now randomized by adding a small random bonus
to each move in the root.

8 years agoInitial version of engine
H.G.Muller [Fri, 21 Oct 2016 12:38:05 +0000]
Initial version of engine

Crazyhouse sort of works here.