const Square = @import("Board.zig").Square;
// WARNING: this must be in sync with Chess.PE!
pub const MATERIAL_SCORE: [12]i16 = .{
100,
300,
350,
500,
1000,
10_000,
-100,
-300,
-350,
-500,
-1000,
-10_000,
};
pub const PAWN_SCORE: [64]i8 = .{
// zig fmt: off
90, 90, 90, 90, 90, 90, 90, 90,
30, 30, 30, 40, 40, 30, 30, 30,
20, 20, 20, 30, 30, 30, 20, 20,
10, 10, 10, 20, 20, 10, 10, 10,
5, 5, 10, 20, 20, 5, 5, 5,
0, 0, 0, 5, 5, 0, 0, 0,
0, 0, 0, -10, -10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
// zig fmt: on
};
pub const KNIGHT_SCORE:[64]i8 = .{
// zig fmt: off
-5, 0, 0, 0, 0, 0, 0, -5,
-5, 0, 0, 10, 10, 0, 0, -5,
-5, 5, 20, 20, 20, 20, 5, -5,
-5, 10, 20, 30, 30, 20, 10, -5,
-5, 10, 20, 30, 30, 20, 10, -5,
-5, 5, 20, 10, 10, 20, 5, -5,
-5, 0, 0, 0, 0, 0, 0, -5,
-5, -10, 0, 0, 0, 0, -10, -5
// zig fmt: on
};
pub const BISHOP_SCORE: [64]i8 = .{
// zig fmt: off
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 10, 10, 0, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 10, 0, 0, 0, 0, 10, 0,
0, 30, 0, 0, 0, 0, 30, 0,
0, 0, -10, 0, 0, -10, 0, 0
// zig fmt: on
};
pub const ROOK_SCORE: [64]i8 = .{
// zig fmt: off
50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 10, 20, 20, 10, 0, 0,
0, 0, 0, 20, 20, 0, 0, 0
// zig fmt: on
};
pub const KING_SCORE: [64]i8 = .{
// zig fmt: off
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 5, 5, 5, 5, 0, 0,
0, 5, 5, 10, 10, 5, 5, 0,
0, 5, 10, 20, 20, 10, 5, 0,
0, 5, 10, 20, 20, 10, 5, 0,
0, 0, 5, 10, 10, 5, 0, 0,
0, 5, 5, -5, -5, 0, 5, 0,
0, 0, 5, 0, -15, 0, 10, 0
// zig fmt: on
};
// mirror positional score tables for opposite side
pub const MIRROR_SCORE: [64]Square = .{
// zig fmt: off
.a1, .b1, .c1, .d1, .e1, .f1, .g1, .h1,
.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2,
.a3, .b3, .c3, .d3, .e3, .f3, .g3, .h3,
.a4, .b4, .c4, .d4, .e4, .f4, .g4, .h4,
.a5, .b5, .c5, .d5, .e5, .f5, .g5, .h5,
.a6, .b6, .c6, .d6, .e6, .f6, .g6, .h6,
.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7,
.a8, .b8, .c8, .d8, .e8, .f8, .g8, .h8
// zig fmt: on
};