csa.h
Go to the documentation of this file.
1 #ifndef OSL_CSA_H
2 #define OSL_CSA_H
3 
4 #include "osl/numEffectState.h"
5 #include <vector>
6 #include <string>
7 #include <iosfwd>
8 #include <stdexcept>
9 namespace osl
10 {
15  namespace csa
16  {
17  struct CsaIOError : public std::runtime_error
18  {
19  CsaIOError(const std::string& w) : std::runtime_error(w) {
20  }
21  };
22 
23  const Move strToMove(const std::string& s,const SimpleState& st);
24  Player charToPlayer(char c);
25  const Square strToPos(const std::string& s);
26  Ptype strToPtype(const std::string& s);
27 
28  const std::string show(Move);
29  const std::string fancyShow(Move);
30  const std::string show(Square);
31  const std::string show(Ptype);
32  const std::string show(Piece);
33  const std::string show(Player);
34  const std::string show(const Move *first, const Move *last);
35 
36  const std::string show(Move, std::string& buf);
37  const std::string show(Square, std::string& buf, size_t offset=0);
38  const std::string show(Ptype, std::string& buf, size_t offset=0);
39  const std::string show(Player, std::string& buf, size_t offset=0);
40  } // namespace csa
41 
43  {
45  std::vector<Move> moves;
46  const NumEffectState& initialState() const { return initial_state; }
47  };
48 
49  namespace csa
50  {
52  {
54  public:
55  CsaFileMinimal(const std::string& filename);
56  CsaFileMinimal(std::istream& is);
57  virtual ~CsaFileMinimal();
58  RecordMinimal load() const { return record; }
59  std::vector<Move> moves() const { return load().moves; }
60  const NumEffectState& initialState() const { return load().initialState(); }
61  protected:
63  void load(std::istream&);
64  public:
65  static bool parseLine(SimpleState&, RecordMinimal&, std::string element,
67  };
68 
69  class CsaString : public CsaFileMinimal
70  {
71  public:
72  CsaString(const std::string&);
73  NumEffectState initialState() const { return load().initial_state; }
74  };
75  }
76  using csa::CsaIOError;
77  using csa::CsaFileMinimal;
78  using csa::CsaString;
79 } // namespace osl
80 #endif /* _CSA_H */
81 // ;;; Local Variables:
82 // ;;; mode:c++
83 // ;;; c-basic-offset:2
84 // ;;; End:
RecordMinimal record
Definition: csa.h:53
NumEffectState initial_state
Definition: csa.h:44
Ptype
駒の種類を4ビットでコード化する
Definition: basic_type.h:83
NumEffectState initialState() const
Definition: csa.h:73
Player charToPlayer(char c)
Definition: csa.cc:18
圧縮していない moveの表現 .
Definition: basic_type.h:1051
CsaIOError(const std::string &w)
Definition: csa.h:19
std::vector< Move > moves() const
Definition: csa.h:59
const Square strToPos(const std::string &s)
Definition: csa.cc:28
利きを持つ局面
RecordMinimal load() const
Definition: csa.h:58
const Move strToMove(const std::string &s, const SimpleState &st)
Definition: csa.cc:48
const std::string show(Move)
Definition: csa.cc:133
Player
Definition: basic_type.h:8
const std::string fancyShow(Move)
Definition: csa.cc:141
std::vector< Move > moves
Definition: csa.h:45
const NumEffectState & initialState() const
Definition: csa.h:60
Ptype strToPtype(const std::string &s)
Definition: csa.cc:38
const NumEffectState & initialState() const
Definition: csa.h:46