Chess-Plisco

 view release on metacpan or  search on metacpan

t/04legal-moves.t  view on Meta::CPAN

		fen => '8/8/8/K7/1R3p1k/8/6P1/8 w - - 0 1',
		premoves => [qw(g2g4)],
		moves => [qw(h4g5 h4g4 h4g3 h4h3 f4f3)],
	},
	{
		name => 'discovered bishop check through en passant simplified',
		fen => '8/8/7k/K7/4pP2/8/8/2B5 b - g3 0 1',
		moves => [qw(h6h7 h6g7 h6g6 h6h5 e4e3)],
	},
	{
		name => 'queen check must be blocked',
		fen => 'r3k2Q/p1ppqp2/bn2p1pb/3PN3/1p2P3/2N4p/PPPBBPPP/R3K2R b KQq - 0 2',
		moves => [qw(h6f8 e7f8)],
	},
	{
		name => 'capture queen giving check',
		fen => 'r4rk1/p1ppqpbQ/bn2pnp1/3PN3/1p2P3/2N5/PPPBBPPP/R3K2R b KQ - 1 2',
		moves => [qw(g8h7 f6h7)],
	},
	{
		name => 'kiwipete perft bug',

t/04move-generator.t  view on Meta::CPAN

		moves => [qw(e1g1 e1d1 e1d2 e1e2 e1f2 e1f1
			a3a4 h3h4 a1b1 a1c1 a1d1 h1g1 h1f1)],
	},
	{
		name => 'lost black queen-side castling',
		fen => 'r3k2r/p6p/p6p/8/8/P6P/P6P/R3K2R b KQk - 0 1',
		moves => [qw(e8g8 e8d8 e8d7 e8e7 e8f7 e8f8
			a6a5 h6h5 a8b8 a8c8 a8d8 h8g8 h8f8)],
	},
	{
		name => 'white king blocked for king-side castling',
		fen => 'r3kn1r/p6p/p6p/8/8/P6P/P6P/R3KN1R w KQkq - 0 1',
		moves => [qw(e1c1 e1d1 e1d2 e1e2 e1f2
			a3a4 h3h4 a1b1 a1c1 a1d1 h1g1
			f1d2 f1e3 f1g3)],
	},
	{
		name => 'black king blocked for king-side castling',
		fen => 'r3kn1r/p6p/p6p/8/8/P6P/P6P/R3KN1R b KQkq - 0 1',
		moves => [qw(e8c8 e8d8 e8d7 e8e7 e8f7
			a6a5 h6h5 a8b8 a8c8 a8d8 h8g8
			f8d7 f8e6 f8g6)],
	},
	{
		name => 'white king blocked for queen-side castling',
		fen => 'r2nk2r/p6p/p6p/8/8/P6P/P6P/R2NK2R w KQkq - 0 1',
		moves => [qw(e1g1 e1d2 e1e2 e1f2 e1f1
			a3a4 h3h4 a1b1 a1c1 h1g1 h1f1
			d1b2 d1c3 d1e3 d1f2)],
	},
	{
		name => 'black king blocked for queen-side castling',
		fen => 'r2nk2r/p6p/p6p/8/8/P6P/P6P/R2NK2R b KQkq - 0 1',
		moves => [qw(e8g8 e8d7 e8e7 e8f7 e8f8
			a6a5 h6h5 a8b8 a8c8 h8g8 h8f8
			d8b7 d8c6 d8e6 d8f7)],
	},
	{
		name => 'white king target blocked for king-side castling',
		fen => 'r3k1nr/p6p/p6p/8/8/P6P/P6P/R3K1NR w KQkq - 0 1',
		moves => [qw(e1c1 e1d1 e1d2 e1e2 e1f2 e1f1
			a3a4 h3h4 a1b1 a1c1 a1d1
			g1e2 g1f3)],
	},
	{
		name => 'black king target blocked for king-side castling',
		fen => 'r3k1nr/p6p/p6p/8/8/P6P/P6P/R3K1NR b KQkq - 0 1',
		moves => [qw(e8c8 e8d8 e8d7 e8e7 e8f7 e8f8
			a6a5 h6h5 a8b8 a8c8 a8d8
			g8e7 g8f6)],
	},
	{
		name => 'white king target blocked for queen-side castling',
		fen => 'r1b1k2r/p6p/p6p/8/8/P6P/P6P/R1B1K2R w KQkq - 0 1',
		moves => [qw(e1d1 e1d2 e1e2 e1f2 e1f1 e1g1
			a3a4 h3h4 a1b1 h1g1 h1f1
			c1b2 c1d2 c1e3 c1f4 c1g5 c1h6)],
	},
	{
		name => 'black king target blocked for queen-side castling',
		fen => 'r1b1k2r/p6p/p6p/8/8/P6P/P6P/R1B1K2R b KQkq - 0 1',
		moves => [qw(e8d8 e8d7 e8e7 e8f7 e8f8 e8g8
			a6a5 h6h5 a8b8 h8g8 h8f8
			c8b7 c8d7 c8e6 c8f5 c8g4 c8h3)],
	},
	{
		name => 'white rook blocked for queen-side castling',
		fen => 'rn2k2r/p6p/p6p/8/8/P6P/P6P/RN2K2R w KQkq - 0 1',
		moves => [qw(e1g1 e1d1 e1d2 e1e2 e1f2 e1f1
			a3a4 h3h4 h1g1 h1f1
			b1c3 b1d2)],
	},
	{
		name => 'black rook blocked for queen-side castling',
		fen => 'rn2k2r/p6p/p6p/8/8/P6P/P6P/RN2K2R b KQkq - 0 1',
		moves => [qw(e8g8 e8d8 e8d7 e8e7 e8f7 e8f8
			a6a5 h6h5 h8g8 h8f8
			b8c6 b8d7)],
	},
	# King moves.
	{
		name => 'lone white king on e2',
		fen => '8/3k4/8/8/8/8/4K3/8 w - - 0 1',
		moves => [qw(e2f2 e2f1 e2e1 e2d1 e2d2 e2d3 e2e3 e2f3)],



( run in 0.545 second using v1.01-cache-2.11-cpan-39bf76dae61 )