kisen.h
Go to the documentation of this file.
1 #ifndef OSL_KISEN_H
2 #define OSL_KISEN_H
3 
4 #include "osl/record/record.h"
5 #include "osl/numEffectState.h"
6 #include <boost/date_time/gregorian/gregorian_types.hpp>
7 #include <string>
8 #include <iosfwd>
9 #include <fstream>
10 namespace osl
11 {
12  namespace record
13  {
14  class KisenUtils{
15  public:
16  static Square convertSquare( int pos );
17  static Move convertMove(SimpleState const& state,int c0,int c1 );
18  static int convertSquare(Square pos);
19  };
24  class KisenFile{
25  private:
27  std::ifstream ifs;
29  const std::string filename;
30  public:
31  static const size_t MaxMoves=256;
32  explicit KisenFile(const std::string& filename);
33  ~KisenFile();
34 
35  size_t size() const{ return number_of_games; }
36  NumEffectState initialState() const{ return initial_state; }
37  std::vector<Move> moves(size_t index);
38  std::string fileName() const { return filename; }
39  std::string ipxFileName() const { return ipxFileName(filename); }
40  static std::string ipxFileName(const std::string&);
41  };
67  class KisenIpxFile{
68  std::ifstream ifs;
70  const std::string file_name;
71  public:
72  enum{
73  BY_PARITY=0,
74  BLACK_WIN=1,
75  WHITE_WIN=2,
76  SENNNICHITE=3,
77  JISHOGI=4,
78  BLACK_WIN_256=5,
79  WHITE_WIN_256=6,
80  SENNNICHITE_256=7,
81  JISHOGI_256=8,
82  };
83  explicit KisenIpxFile(std::string const& filename);
84  ~KisenIpxFile();
85 
86  size_t size() const{ return number_of_games; }
87  std::string player(size_t index,Player pl);
88  std::string title(size_t index,Player pl);
89  unsigned int rating(size_t index,Player pl);
90  unsigned int result(size_t index);
91  const std::string& fileName() const { return file_name; }
95  boost::gregorian::date startDate(size_t index);
96  };
102  private:
104  std::ifstream ifs;
106  public:
107  static const size_t maxMoves=256;
108  explicit KisenPlusFile(const std::string& fileName);
109  size_t size() const{ return number_of_games; }
110  NumEffectState initialState() const{ return initial_state; }
111  std::vector<Move> moves(size_t index);
112  void load(size_t index, std::vector<Move>&, std::vector<int>&);
113  };
114 
116  {
117  public:
118  KisenWriter(std::ostream &ostream) : os(ostream) { }
119  void save(const RecordMinimal&);
120  private:
121  std::ostream &os;
122  };
123 
131  {
132  public:
133  KisenIpxWriter(std::ostream &ostream) : os(ostream) { }
134  void save(const Record &,
135  int black_rating, int white_rating,
136  const std::string &black_title,
137  const std::string &white_title);
138  private:
139  void writeString(const std::string &name, size_t length);
140  void writeRating(int rating);
141  void writeStartDate(int year, int month, int day, int hour, int min);
142  std::ostream &os;
143  };
144  } // namespace record
145  using record::KisenFile;
146  using record::KisenIpxFile;
147  using record::KisenWriter;
149 } // namespace osl
150 #endif // OSL_KISEN_H
151 // ;;; Local Variables:
152 // ;;; mode:c++
153 // ;;; c-basic-offset:2
154 // ;;; End:
「.ipx」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:67
KisenWriter(std::ostream &ostream)
Definition: kisen.h:118
size_t size() const
Definition: kisen.h:109
「.kpf」という拡張子を持つ棋泉プラス形式ファイル.
Definition: kisen.h:101
NumEffectState initialState() const
Definition: kisen.h:110
NumEffectState initialState() const
Definition: kisen.h:36
int min(Player p, int v1, int v2)
Definition: evalTraits.h:92
size_t size() const
Definition: kisen.h:35
const std::string filename
Definition: kisen.h:29
std::ifstream ifs
Definition: kisen.h:68
size_t size() const
Definition: kisen.h:86
static Move convertMove(SimpleState const &state, int c0, int c1)
Definition: kisen.cc:18
const std::string & fileName() const
Definition: kisen.h:91
NumEffectState initial_state
Definition: kisen.h:26
圧縮していない moveの表現 .
Definition: basic_type.h:1051
const std::string file_name
Definition: kisen.h:70
size_t number_of_games
Definition: kisen.h:28
std::ifstream ifs
Definition: kisen.h:27
「.kif」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:24
利きを持つ局面
std::string fileName() const
Definition: kisen.h:38
「.ipx」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:130
NumEffectState initial_state
Definition: kisen.h:103
std::string ipxFileName() const
Definition: kisen.h:39
KisenIpxWriter(std::ostream &ostream)
Definition: kisen.h:133
Player
Definition: basic_type.h:8
std::ostream & os
Definition: kisen.h:142
static Square convertSquare(int pos)
Definition: kisen.cc:8
std::ifstream ifs
Definition: kisen.h:104
std::ostream & os
Definition: kisen.h:121