Belofte  version 2.1.5
A promising chess program using the UCI or Winboard interface
search_ab.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------+
2  * File: search_ab.h
3  * Project: part of belofte - A Promising Chess Program
4  * Author: yves
5  * SPDX-License-Identifier: GPL-2.0-only
6 +----------------------------------------------------------------------*/
7 
8 #if !defined(SEARCH_AB_H)
9 #define SEARCH_AB_H
10 
11 //-----------------------------------------------------------------------
12 
14 public:
16  explicit SearchAlphaBeta(std::string const& n);
17  ~SearchAlphaBeta() override;
18 
19  // no copy or move ctor nor assignment defined
20  SearchAlphaBeta(SearchAlphaBeta const&) = delete;
24 
25 protected:
27 
33 
34 private:
35  bBestMoveInfo CalcBestMove(bBoard& b, depth_t const& nDepth,
36  bSearchScore alpha, bSearchScore beta);
37  bScore Quiescence(bBoard& b, depth_t const& nDepth,
38  bSearchScore alpha, bSearchScore beta, uint8_t& nCheckCount);
39 };
40 
41 class SearchAlphaBetaFS final : public SearchAlphaBeta {
42 public:
44  ~SearchAlphaBetaFS() override;
45 
46  // no copy or move ctor nor assignment defined
51 };
52 
53 class SearchAlphaBetaFH final : public SearchAlphaBeta {
54 public:
56  ~SearchAlphaBetaFH() final;
57 
58  // no copy or move ctor nor assignment defined
63 };
64 
65 //-----------------------------------------------------------------------
66 
67 class TerminalNode {
68 public:
69  TerminalNode(bBoard& b, depth_t const& nDepth, bSearchScore const& alpha,
70  bSearchScore const& beta, bSearchAlgorithm* algo);
71  TerminalNode(bBoard& b, depth_t const& nDepth, bSearchScore const& alpha,
72  bSearchScore const& beta, uint8_t const& nCheckCount, bSearchAlgorithm* algo);
73 
74  bBestMoveInfo getNode() const { return bBestMoveInfo(m_terminalscore); }
75  bScore getScore() const { return m_terminalscore; }
76  bool isTerminal() const { return m_isTerminal; }
77 
78 private:
79  bool m_isTerminal;
80  bScore m_terminalscore;
81 };
82 
83 #endif // defined SEARCH_AB_H
84 
85 // eof
int_fast16_t bScore
used to return id of move in movelist
Definition: belofte.h:104
int_fast8_t depth_t
Definition: belofte.h:105
SearchAlphaBetaFH & operator=(SearchAlphaBetaFH const &)=delete
~SearchAlphaBetaFH() final
Definition: search_ab.cpp:86
SearchAlphaBetaFH(SearchAlphaBetaFH const &)=delete
SearchAlphaBetaFH(SearchAlphaBetaFH &&)=delete
SearchAlphaBetaFH & operator=(SearchAlphaBetaFH &&)=delete
SearchAlphaBetaFS(SearchAlphaBetaFS &&)=delete
SearchAlphaBetaFS & operator=(SearchAlphaBetaFS const &)=delete
SearchAlphaBetaFS(SearchAlphaBetaFS const &)=delete
~SearchAlphaBetaFS() override
Definition: search_ab.cpp:70
SearchAlphaBetaFS & operator=(SearchAlphaBetaFS &&)=delete
~SearchAlphaBeta() override
Definition: search_ab.cpp:49
bBestMoveInfo CalcBestMove(bBoard &b) final
Definition: search_ab.cpp:53
bScore m_nBetaCutOffMargin
Definition: search_ab.h:31
bool m_bFailSoft
Definition: search_ab.h:30
SearchAlphaBeta & operator=(SearchAlphaBeta &&)=delete
SearchAlphaBeta(SearchAlphaBeta const &)=delete
bool m_bEarlyBetaCutOff
Definition: search_ab.h:28
SearchAlphaBeta & operator=(SearchAlphaBeta const &)=delete
SearchAlphaBeta(SearchAlphaBeta &&)=delete
bool m_bEarlyQSBetaCutOff
Definition: search_ab.h:29
bool m_bAttenuateScore
Definition: search_ab.h:32
bool isTerminal() const
Definition: search_ab.h:76
bScore getScore() const
Definition: search_ab.h:75
TerminalNode(bBoard &b, depth_t const &nDepth, bSearchScore const &alpha, bSearchScore const &beta, bSearchAlgorithm *algo)
Definition: search_ab.cpp:94
bBestMoveInfo getNode() const
Definition: search_ab.h:74
board
Definition: board.h:111