00001
00002
00003 #ifndef GAMEPLAYING_ALPHABETAPLAYER_H
00004 #define GAMEPLAYING_ALPHABETAPLAYER_H
00005
00006 #include "osl/game_playing/searchPlayer.h"
00007 #include <boost/scoped_ptr.hpp>
00008
00009 namespace osl
00010 {
00011 namespace search
00012 {
00013 struct AlphaBeta2SharedRoot;
00014 }
00015 namespace game_playing
00016 {
00017 class AlphaBeta2ProgressEvalPlayer : public SearchPlayer
00018 {
00019 public:
00020 AlphaBeta2ProgressEvalPlayer();
00021 ~AlphaBeta2ProgressEvalPlayer();
00022 ComputerPlayer* clone() const;
00023
00024 const MoveWithComment searchWithSecondsForThisMove(const GameState&, const search::TimeAssigned&);
00025 bool isReasonableMove(const GameState&, Move move, int pawn_sacrifice);
00026 };
00027
00028 class AlphaBeta2OpenMidEndingEvalPlayer : public SearchPlayer
00029 {
00030 public:
00031 AlphaBeta2OpenMidEndingEvalPlayer();
00032 ~AlphaBeta2OpenMidEndingEvalPlayer();
00033 ComputerPlayer* clone() const;
00034
00035 const MoveWithComment searchWithSecondsForThisMove(const GameState&, const search::TimeAssigned&);
00036 bool isReasonableMove(const GameState&, Move move, int pawn_sacrifice);
00037
00038 const MoveWithComment analyzeWithSeconds(const GameState& gs, const search::TimeAssigned& org,
00039 search::AlphaBeta2SharedRoot& out);
00040 };
00041
00042 class AlphaBeta3OpenMidEndingEvalPlayer : public SearchPlayer
00043 {
00044 public:
00045 AlphaBeta3OpenMidEndingEvalPlayer();
00046 ~AlphaBeta3OpenMidEndingEvalPlayer();
00047 ComputerPlayer* clone() const;
00048
00049 const MoveWithComment searchWithSecondsForThisMove(const GameState&, const search::TimeAssigned&);
00050 bool isReasonableMove(const GameState&, Move move, int pawn_sacrifice);
00051 };
00052 }
00053 }
00054
00055 #endif
00056
00057
00058
00059