From 28164beb37d1e3bab60ab5d13422344110691fe8 Mon Sep 17 00:00:00 2001 From: Bruno Raoult Date: Fri, 12 Nov 2021 10:57:47 +0100 Subject: [PATCH] board.h: add square defs for both 0x88 & bitboards --- TODO.md | 8 ++++++++ fentests.txt | 6 ++++++ src/board.h | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..4b9ed88 --- /dev/null +++ b/TODO.md @@ -0,0 +1,8 @@ +## TODO + +### NEXT STEPS + +### IDEAS +- `move_gen()`: `doit` is maybe redundant with test on current turn. + +### MISC diff --git a/fentests.txt b/fentests.txt index 299e1a9..cc19f35 100644 --- a/fentests.txt +++ b/fentests.txt @@ -1,2 +1,8 @@ '4k3/4p3/8/b7/1BR1p2p/1Q3P2/5N2/4K3 w - - 0 1' 'r1bq1rk1/pppp1ppp/2n2n2/4p3/2B1P3/3PPN2/PPP3PP/RN1QK2R b KQ - 1 7' +'6k1/6pp/R2p4/p1p5/8/1P1r3P/6P1/6K1 b - - 3 37' + +# both can castle queen only +'r3k2r/8/3B4/8/8/3b4/8/R3K2R w KQkq - 0 1' +'r3k2r/8/3BB3/8/8/3bb3/8/R3K2R w KQkq - 0 1' +'r2bkb1r/8/8/8/8/3bb3/8/R2BKB1R w KQkq - 0 1' diff --git a/src/board.h b/src/board.h index 3de4dc2..602bd4a 100644 --- a/src/board.h +++ b/src/board.h @@ -62,4 +62,43 @@ typedef struct board_s { #define FILE2C(f) ((f) + 'a') #define RANK2C(r) ((r) + '1') +enum x88_square { + x88_A1=0x00, x88_B1, x88_C1, x88_D1, x88_E1, x88_F1, x88_G1, x88_H1, + x88_A2=0x10, x88_B2, x88_C2, x88_D2, x88_E2, x88_F2, x88_G2, x88_H2, + x88_A3=0x20, x88_B3, x88_C3, x88_D3, x88_E3, x88_F3, x88_G3, x88_H3, + x88_A4=0x30, x88_B4, x88_C4, x88_D4, x88_E4, x88_F4, x88_G4, x88_H4, + x88_A5=0x40, x88_B5, x88_C5, x88_D5, x88_E5, x88_F5, x88_G5, x88_H5, + x88_A6=0x50, x88_B6, x88_C6, x88_D6, x88_E6, x88_F6, x88_G6, x88_H6, + x88_A7=0x60, x88_B7, x88_C7, x88_D7, x88_E7, x88_F7, x88_G7, x88_H7, + x88_A8=0x70, x88_B8, x88_C8, x88_D8, x88_E8, x88_F8, x88_G8, x88_H8, +}; + +/* necessary not to become mad to set bitboards + */ +enum bb_square{ + A1=(u64)1, B1=(u64)A1<<1, C1=(u64)B1<<1, D1=(u64)C1<<1, + E1=(u64)D1<<1, F1=(u64)E1<<1, G1=(u64)F1<<1, H1=(u64)G1<<1, + + A2=(u64)A1<<8, B2=(u64)B1<<8, C2=(u64)C1<<8, D2=(u64)D1<<8, + E2=(u64)E1<<8, F2=(u64)F1<<8, G2=(u64)G1<<8, H2=(u64)H1<<8, + + A3=(u64)A2<<8, B3=(u64)B2<<8, C3=(u64)C2<<8, D3=(u64)D2<<8, + E3=(u64)E2<<8, F3=(u64)F2<<8, G3=(u64)G2<<8, H3=(u64)H2<<8, + + A4=(u64)A3<<8, B4=(u64)B3<<8, C4=(u64)C3<<8, D4=(u64)D3<<8, + E4=(u64)E3<<8, F4=(u64)F3<<8, G4=(u64)G3<<8, H4=(u64)H3<<8, + + A5=(u64)A4<<8, B5=(u64)B4<<8, C5=(u64)C4<<8, D5=(u64)D4<<8, + E5=(u64)E4<<8, F5=(u64)F4<<8, G5=(u64)G4<<8, H5=(u64)H4<<8, + + A6=(u64)A5<<8, B6=(u64)B5<<8, C6=(u64)C5<<8, D6=(u64)D5<<8, + E6=(u64)E5<<8, F6=(u64)F5<<8, G6=(u64)G5<<8, H6=(u64)H5<<8, + + A7=(u64)A6<<8, B7=(u64)B6<<8, C7=(u64)C6<<8, D7=(u64)D6<<8, + E7=(u64)E6<<8, F7=(u64)F6<<8, G7=(u64)G6<<8, H7=(u64)H6<<8, + + A8=(u64)A7<<8, B8=(u64)B7<<8, C8=(u64)C7<<8, D8=(u64)D7<<8, + E8=(u64)E7<<8, F8=(u64)F7<<8, G8=(u64)G7<<8, H8=(u64)H7<<8, +}; + #endif /* BOARD_H */