1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Manual merge

This commit is contained in:
Marco Costalba 2008-10-26 21:44:58 +01:00
commit 74f1efee26
6 changed files with 44 additions and 37 deletions

View file

@ -8,6 +8,7 @@
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
Stockfish is distributed in the hope that it will be useful, Stockfish is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

View file

@ -616,7 +616,7 @@ namespace {
template<Color Us, Color Them, Bitboard TRank8BB, SquareDelta TDELTA_NE, template<Color Us, Color Them, Bitboard TRank8BB, SquareDelta TDELTA_NE,
SquareDelta TDELTA_NW, SquareDelta TDELTA_N SquareDelta TDELTA_NW, SquareDelta TDELTA_N
> >
MoveStack* do_generate_pawn_captures(const Position& pos, MoveStack* mlist) { MoveStack* do_generate_pawn_captures(const Position& pos, MoveStack* mlist) {
Square to; Square to;
Bitboard pawns = pos.pawns(Us); Bitboard pawns = pos.pawns(Us);
@ -689,7 +689,7 @@ namespace {
template<Color Us, Color Them, Bitboard TRank8BB, Bitboard TRank3BB, template<Color Us, Color Them, Bitboard TRank8BB, Bitboard TRank3BB,
SquareDelta TDELTA_NE, SquareDelta TDELTA_NW, SquareDelta TDELTA_N SquareDelta TDELTA_NE, SquareDelta TDELTA_NW, SquareDelta TDELTA_N
> >
MoveStack* do_generate_pawn_noncaptures(const Position& pos, MoveStack* mlist) { MoveStack* do_generate_pawn_noncaptures(const Position& pos, MoveStack* mlist) {
Bitboard pawns = pos.pawns(Us); Bitboard pawns = pos.pawns(Us);
Bitboard enemyPieces = pos.pieces_of_color(Them); Bitboard enemyPieces = pos.pieces_of_color(Them);

View file

@ -7,12 +7,12 @@
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
Stockfish is distributed in the hope that it will be useful, Stockfish is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
@ -39,4 +39,5 @@ extern int generate_evasions(const Position &pos, MoveStack *mlist);
extern int generate_legal_moves(const Position &pos, MoveStack *mlist); extern int generate_legal_moves(const Position &pos, MoveStack *mlist);
extern bool move_is_legal(const Position &pos, const Move m, Bitboard pinned); extern bool move_is_legal(const Position &pos, const Move m, Bitboard pinned);
#endif // !defined(MOVEGEN_H_INCLUDED) #endif // !defined(MOVEGEN_H_INCLUDED)

View file

@ -8,6 +8,7 @@
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
Stockfish is distributed in the hope that it will be useful, Stockfish is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@ -233,25 +234,25 @@ void MovePicker::score_noncaptures() {
// First score by history, when no history is available then use // First score by history, when no history is available then use
// piece/square tables values. This seems to be better then a // piece/square tables values. This seems to be better then a
// random choice when we don't have an history for any move. // random choice when we don't have an history for any move.
Move m; Move m;
int hs; int hs;
for (int i = 0; i < numOfMoves; i++) for (int i = 0; i < numOfMoves; i++)
{ {
m = moves[i].move; m = moves[i].move;
if (m == killer1) if (m == killer1)
hs = HistoryMax + 2; hs = HistoryMax + 2;
else if (m == killer2) else if (m == killer2)
hs = HistoryMax + 1; hs = HistoryMax + 1;
else else
hs = H.move_ordering_score(pos.piece_on(move_from(m)), m); hs = H.move_ordering_score(pos.piece_on(move_from(m)), m);
// Ensure moves in history are always sorted as first // Ensure moves in history are always sorted as first
if (hs > 0) if (hs > 0)
hs += 1000; hs += 1000;
moves[i].score = hs + pos.mg_pst_delta(m); moves[i].score = hs + pos.mg_pst_delta(m);
} }
} }

View file

@ -7,7 +7,11 @@
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
<<<<<<< HEAD:src/movepick.h
=======
>>>>>>> d3600c39a745179ed6b094b305d0645e83a1ee86:src/movepick.h
Stockfish is distributed in the hope that it will be useful, Stockfish is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

View file

@ -7,12 +7,12 @@
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
Stockfish is distributed in the hope that it will be useful, Stockfish is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
@ -25,8 +25,8 @@
#if defined(_MSC_VER) #if defined(_MSC_VER)
// Forcing value to bool 'true' or 'false' (performance warning) // Forcing value to bool 'true' or 'false' (performance warning)
#pragma warning(disable: 4800) #pragma warning(disable: 4800)
#endif #endif
//// ////
@ -48,7 +48,7 @@
//// ////
/// FEN string for the initial position: /// FEN string for the initial position:
const std::string StartPosition = const std::string StartPosition =
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
/// Maximum number of plies per game (220 should be enough, because the /// Maximum number of plies per game (220 should be enough, because the
@ -64,9 +64,9 @@ const int MaxGameLength = 220;
/// Castle rights, encoded as bit fields: /// Castle rights, encoded as bit fields:
enum CastleRights { enum CastleRights {
NO_CASTLES = 0, NO_CASTLES = 0,
WHITE_OO = 1, WHITE_OO = 1,
BLACK_OO = 2, BLACK_OO = 2,
WHITE_OOO = 4, WHITE_OOO = 4,
BLACK_OOO = 8, BLACK_OOO = 8,
ALL_CASTLES = 15 ALL_CASTLES = 15
@ -92,7 +92,7 @@ struct UndoInfo {
/// The position data structure. A position consists of the following data: /// The position data structure. A position consists of the following data:
/// ///
/// * For each piece type, a bitboard representing the squares occupied /// * For each piece type, a bitboard representing the squares occupied
/// by pieces of that type. /// by pieces of that type.
/// * For each color, a bitboard representing the squares occupiecd by /// * For each color, a bitboard representing the squares occupiecd by
@ -281,7 +281,7 @@ public:
// Reset the gamePly variable to 0 // Reset the gamePly variable to 0
void reset_game_ply(); void reset_game_ply();
// Position consistency check, for debugging // Position consistency check, for debugging
bool is_ok(int* failedStep = NULL) const; bool is_ok(int* failedStep = NULL) const;
@ -329,7 +329,7 @@ private:
// Piece counts // Piece counts
int pieceCount[2][8]; // [color][pieceType] int pieceCount[2][8]; // [color][pieceType]
// Piece lists // Piece lists
Square pieceList[2][8][16]; // [color][pieceType][index] Square pieceList[2][8][16]; // [color][pieceType][index]
int index[64]; int index[64];
@ -591,7 +591,7 @@ inline bool Position::file_is_half_open(Color c, File f) const {
inline bool Position::square_is_weak(Square s, Color c) const { inline bool Position::square_is_weak(Square s, Color c) const {
return !(pawns(c) & outpost_mask(opposite_color(c), s)); return !(pawns(c) & outpost_mask(opposite_color(c), s));
} }
inline Key Position::get_key() const { inline Key Position::get_key() const {
return key; return key;
} }
@ -642,7 +642,7 @@ inline Phase Position::game_phase() const {
static const Value EndgameLimit = 4 * RookValueMidgame - Value(325); static const Value EndgameLimit = 4 * RookValueMidgame - Value(325);
Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK); Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK);
if (npm >= MidgameLimit) if (npm >= MidgameLimit)
return PHASE_MIDGAME; return PHASE_MIDGAME;
else if(npm <= EndgameLimit) else if(npm <= EndgameLimit)
@ -687,7 +687,7 @@ inline int Position::rule_50_counter() const {
inline bool Position::opposite_colored_bishops() const { inline bool Position::opposite_colored_bishops() const {
return piece_count(WHITE, BISHOP) == 1 return piece_count(WHITE, BISHOP) == 1
&& piece_count(BLACK, BISHOP) == 1 && piece_count(BLACK, BISHOP) == 1
&& square_color(piece_list(WHITE, BISHOP, 0)) != square_color(piece_list(BLACK, BISHOP, 0)); && square_color(piece_list(WHITE, BISHOP, 0)) != square_color(piece_list(BLACK, BISHOP, 0));
} }
@ -695,6 +695,6 @@ inline bool Position::has_pawn_on_7th(Color c) const {
return pawns(c) & relative_rank_bb(c, RANK_7); return pawns(c) & relative_rank_bb(c, RANK_7);
} }
#endif // !defined(POSITION_H_INCLUDED) #endif // !defined(POSITION_H_INCLUDED)