From 6080fecf9cba9ac063f8f07bd25004c14016bd33 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 26 Dec 2010 10:54:45 +0100 Subject: [PATCH] Retire direction.h Move all to square.h No functional change. Signed-off-by: Marco Costalba --- src/bitboard.cpp | 3 +- src/bitboard.h | 1 - src/direction.cpp | 1 - src/direction.h | 86 ----------------------------------------------- src/main.cpp | 1 - src/position.h | 1 - src/square.h | 34 +++++++++++++++++++ 7 files changed, 35 insertions(+), 92 deletions(-) delete mode 100644 src/direction.h diff --git a/src/bitboard.cpp b/src/bitboard.cpp index e23e5b6b..00854bb9 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -26,7 +26,6 @@ #include "bitboard.h" #include "bitcount.h" -#include "direction.h" #if defined(IS_64BIT) @@ -481,7 +480,7 @@ namespace { for (Square s2 = SQ_A1; s2 <= SQ_H8; s2++) { BetweenBB[s1][s2] = EmptyBoardBB; - SignedDirection d = signed_direction_between_squares(s1, s2); + SignedDirection d = SignedDirection(SignedDirectionTable[s1][s2]); if (d != SIGNED_DIR_NONE) { diff --git a/src/bitboard.h b/src/bitboard.h index e8f74fc5..bff9846c 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -26,7 +26,6 @@ //// Includes //// -#include "direction.h" #include "piece.h" #include "square.h" #include "types.h" diff --git a/src/direction.cpp b/src/direction.cpp index 9d805765..0210381d 100644 --- a/src/direction.cpp +++ b/src/direction.cpp @@ -22,7 +22,6 @@ //// Includes //// -#include "direction.h" #include "square.h" diff --git a/src/direction.h b/src/direction.h deleted file mode 100644 index 0500840a..00000000 --- a/src/direction.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Stockfish, a UCI chess playing engine derived from Glaurung 2.1 - Copyright (C) 2004-2008 Tord Romstad (Glaurung author) - Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad - - Stockfish is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Stockfish is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -#if !defined(DIRECTION_H_INCLUDED) -#define DIRECTION_H_INCLUDED - -//// -//// Includes -//// - -#include "square.h" -#include "types.h" - - -//// -//// Types -//// - -enum Direction { - DIR_E = 0, DIR_N = 1, DIR_NE = 2, DIR_NW = 3, DIR_NONE = 4 -}; - -enum SignedDirection { - SIGNED_DIR_E = 0, SIGNED_DIR_W = 1, - SIGNED_DIR_N = 2, SIGNED_DIR_S = 3, - SIGNED_DIR_NE = 4, SIGNED_DIR_SW = 5, - SIGNED_DIR_NW = 6, SIGNED_DIR_SE = 7, - SIGNED_DIR_NONE = 8 -}; - -ENABLE_OPERATORS_ON(SignedDirection); - - -//// -//// Variables -//// - -extern uint8_t DirectionTable[64][64]; -extern uint8_t SignedDirectionTable[64][64]; - - -//// -//// Inline functions -//// - -inline Direction direction_between_squares(Square s1, Square s2) { - return Direction(DirectionTable[s1][s2]); -} - -inline SignedDirection signed_direction_between_squares(Square s1, Square s2) { - return SignedDirection(SignedDirectionTable[s1][s2]); -} - -inline int direction_is_diagonal(Square s1, Square s2) { - return DirectionTable[s1][s2] & 2; -} - -inline bool direction_is_straight(Square s1, Square s2) { - return DirectionTable[s1][s2] < 2; -} - -//// -//// Prototypes -//// - -extern void init_direction_table(); - - -#endif // !defined(DIRECTION_H_INCLUDED) diff --git a/src/main.cpp b/src/main.cpp index de77e582..70359fdf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,7 +30,6 @@ #include "bitboard.h" #include "bitcount.h" -#include "direction.h" #include "endgame.h" #include "evaluate.h" #include "material.h" diff --git a/src/position.h b/src/position.h index bb574e16..5b1bc664 100644 --- a/src/position.h +++ b/src/position.h @@ -27,7 +27,6 @@ #include "bitboard.h" #include "color.h" -#include "direction.h" #include "move.h" #include "piece.h" #include "square.h" diff --git a/src/square.h b/src/square.h index 88ae1363..621e398f 100644 --- a/src/square.h +++ b/src/square.h @@ -68,10 +68,23 @@ enum SquareDelta { DELTA_NW = DELTA_N + DELTA_W, }; +enum Direction { + DIR_E = 0, DIR_N = 1, DIR_NE = 2, DIR_NW = 3, DIR_NONE = 4 +}; + +enum SignedDirection { + SIGNED_DIR_E = 0, SIGNED_DIR_W = 1, + SIGNED_DIR_N = 2, SIGNED_DIR_S = 3, + SIGNED_DIR_NE = 4, SIGNED_DIR_SW = 5, + SIGNED_DIR_NW = 6, SIGNED_DIR_SE = 7, + SIGNED_DIR_NONE = 8 +}; + ENABLE_OPERATORS_ON(Square); ENABLE_OPERATORS_ON(File); ENABLE_OPERATORS_ON(Rank); ENABLE_OPERATORS_ON(SquareDelta); +ENABLE_OPERATORS_ON(SignedDirection); //// @@ -81,6 +94,9 @@ ENABLE_OPERATORS_ON(SquareDelta); const int FlipMask = 56; const int FlopMask = 7; +extern uint8_t DirectionTable[64][64]; +extern uint8_t SignedDirectionTable[64][64]; + //// //// Inline functions @@ -181,4 +197,22 @@ inline bool square_is_ok(Square s) { return file_is_ok(square_file(s)) && rank_is_ok(square_rank(s)); } +inline Direction direction_between_squares(Square s1, Square s2) { + return Direction(DirectionTable[s1][s2]); +} + +inline int direction_is_diagonal(Square s1, Square s2) { + return DirectionTable[s1][s2] & 2; +} + +inline bool direction_is_straight(Square s1, Square s2) { + return DirectionTable[s1][s2] < 2; +} + +//// +//// Prototypes +//// + +extern void init_direction_table(); + #endif // !defined(SQUARE_H_INCLUDED) -- 2.39.2