csa.h
Go to the documentation of this file.
#ifndef OSL_CSA_H
#define OSL_CSA_H
#include "osl/numEffectState.h"
#include <vector>
#include <string>
#include <iosfwd>
#include <stdexcept>
namespace osl
{
namespace csa
{
struct CsaIOError : public std::runtime_error
{
CsaIOError(const std::string& w) : std::runtime_error(w) {
}
};
const Move strToMove(const std::string& s,const SimpleState& st);
Player charToPlayer(char c);
const Square strToPos(const std::string& s);
Ptype strToPtype(const std::string& s);
const std::string show(Move);
const std::string fancyShow(Move);
const std::string show(Square);
const std::string show(Ptype);
const std::string show(Piece);
const std::string show(Player);
const std::string show(const Move *first, const Move *last);
const std::string show(Move, std::string& buf);
const std::string show(Square, std::string& buf, size_t offset=0);
const std::string show(Ptype, std::string& buf, size_t offset=0);
const std::string show(Player, std::string& buf, size_t offset=0);
} // namespace csa
struct RecordMinimal
{
NumEffectState initial_state;
std::vector<Move> moves;
const NumEffectState& initialState() const { return initial_state; }
};
namespace csa
{
class CsaFileMinimal
{
RecordMinimal record;
public:
CsaFileMinimal(const std::string& filename);
CsaFileMinimal(std::istream& is);
virtual ~CsaFileMinimal();
RecordMinimal load() const { return record; }
std::vector<Move> moves() const { return load().moves; }
const NumEffectState& initialState() const { return load().initialState(); }
protected:
CsaFileMinimal() {}
void load(std::istream&);
public:
static bool parseLine(SimpleState&, RecordMinimal&, std::string element,
CArray<bool,9>&);
};
class CsaString : public CsaFileMinimal
{
public:
CsaString(const std::string&);
NumEffectState initialState() const { return load().initial_state; }
};
}
using csa::CsaIOError;
using csa::CsaFileMinimal;
using csa::CsaString;
} // namespace osl
#endif /* _CSA_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
osl::CArray
Definition container.h:20
osl::Move
圧縮していない moveの表現 .
Definition basic_type.h:1052
osl::NumEffectState
利きを持つ局面
Definition numEffectState.h:34
osl::Piece
駒.
Definition basic_type.h:788
osl::SimpleState
Definition simpleState.h:35
osl::Square
Definition basic_type.h:532
osl::csa::CsaFileMinimal::initialState
const NumEffectState & initialState() const
Definition csa.h:60
osl::csa::CsaFileMinimal::parseLine
static bool parseLine(SimpleState &, RecordMinimal &, std::string element, CArray< bool, 9 > &)
Definition csa.cc:247
osl::csa::CsaFileMinimal::~CsaFileMinimal
virtual ~CsaFileMinimal()
Definition csa.cc:216
osl::csa::CsaFileMinimal::CsaFileMinimal
CsaFileMinimal()
Definition csa.h:62
osl::csa::CsaFileMinimal::CsaFileMinimal
CsaFileMinimal(const std::string &filename)
Definition csa.cc:201
osl::csa::CsaFileMinimal::moves
std::vector< Move > moves() const
Definition csa.h:59
osl::csa::CsaFileMinimal::record
RecordMinimal record
Definition csa.h:53
osl::csa::CsaFileMinimal::load
RecordMinimal load() const
Definition csa.h:58
osl::csa::CsaString::initialState
NumEffectState initialState() const
Definition csa.h:73
osl::csa::CsaString::CsaString
CsaString(const std::string &)
Definition csa.cc:325
osl::csa
CSA形式.
Definition csa.h:16
osl::csa::strToPos
const Square strToPos(const std::string &s)
Definition csa.cc:28
osl::csa::strToPtype
Ptype strToPtype(const std::string &s)
Definition csa.cc:38
osl::csa::show
const std::string show(Move)
Definition csa.cc:133
osl::csa::charToPlayer
Player charToPlayer(char c)
Definition csa.cc:18
osl::csa::strToMove
const Move strToMove(const std::string &s, const SimpleState &st)
Definition csa.cc:48
osl::csa::fancyShow
const std::string fancyShow(Move)
Definition csa.cc:141
osl
Definition additionalEffect.h:6
osl::Ptype
Ptype
駒の種類を4ビットでコード化する
Definition basic_type.h:84
osl::Player
Player
Definition basic_type.h:8
std
Definition basic_type.h:1353
numEffectState.h
osl::RecordMinimal
Definition csa.h:43
osl::RecordMinimal::initial_state
NumEffectState initial_state
Definition csa.h:44
osl::RecordMinimal::moves
std::vector< Move > moves
Definition csa.h:45
osl::RecordMinimal::initialState
const NumEffectState & initialState() const
Definition csa.h:46
osl::csa::CsaIOError::CsaIOError
CsaIOError(const std::string &w)
Definition csa.h:19