/usr/include/osl/game_playing/computerPlayer.h is in libosl-dev 0.6.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | /* computerPlayer.h
*/
#ifndef GAME_PLAYING_COMPUTERPLAYER_H
#define GAME_PLAYING_COMPUTERPLAYER_H
#include "osl/search/moveWithComment.h"
#include "osl/state/numEffectState.h"
#include "osl/move.h"
#include "osl/misc/carray.h"
#include <boost/scoped_ptr.hpp>
namespace osl
{
namespace container
{
class MoveVector;
}
namespace search
{
struct TimeAssigned;
}
namespace game_playing
{
class GameState;
class ComputerPlayer
{
protected:
bool speculative_search_allowed;
public:
ComputerPlayer() : speculative_search_allowed(false)
{
}
virtual ~ComputerPlayer();
/** new したものを返す */
virtual ComputerPlayer* clone() const = 0;
virtual void pushMove(Move m)=0;
virtual void popMove()=0;
/** @return success to stop */
virtual bool isReasonableMove(const GameState&,
Move move, int pawn_sacrifice);
/**
* @param seconds 残り持ち時間
*/
virtual const MoveWithComment selectBestMove(const GameState&, int seconds, int elapsed,
int byoyomi)=0;
virtual void setInitialState(const NumEffectState&);
/**
* 相手時間の探索を許可する (GameManager が操作)
*/
virtual void allowSpeculativeSearch(bool value);
/** 探索をとめる */
virtual bool stopSearchNow();
virtual void setRootIgnoreMoves(const container::MoveVector *rim, bool prediction);
};
class ComputerPlayerSelectBestMoveInTime
{
public:
virtual ~ComputerPlayerSelectBestMoveInTime();
virtual const MoveWithComment selectBestMoveInTime(const GameState&, const search::TimeAssigned&)=0;
};
/**
* 常に投了する
*/
class ResignPlayer : public ComputerPlayer
{
public:
~ResignPlayer();
ComputerPlayer* clone() const
{
return new ResignPlayer();
}
void pushMove(Move m);
void popMove();
const MoveWithComment selectBestMove(const GameState&, int, int, int);
};
/**
* 合法手をランダムに指す
*/
class RandomPlayer : public ComputerPlayer
{
public:
ComputerPlayer* clone() const
{
return new RandomPlayer();
}
~RandomPlayer();
void pushMove(Move m);
void popMove();
const MoveWithComment selectBestMove(const GameState&, int, int, int);
};
} // namespace game_playing
} // namespace osl
#endif /* GAME_PLAYING_COMPUTERPLAYER_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|