My Project
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; }
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{
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; }
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:
圧縮していない moveの表現 .
Definition: basic_type.h:1052
利きを持つ局面
「.kif」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:24
std::string fileName() const
Definition: kisen.h:38
static const size_t MaxMoves
Definition: kisen.h:31
size_t number_of_games
Definition: kisen.h:28
NumEffectState initial_state
Definition: kisen.h:26
size_t size() const
Definition: kisen.h:35
std::vector< Move > moves(size_t index)
Definition: kisen.cc:94
const std::string filename
Definition: kisen.h:29
KisenFile(const std::string &filename)
Definition: kisen.cc:84
std::string ipxFileName() const
Definition: kisen.h:39
NumEffectState initialState() const
Definition: kisen.h:36
std::ifstream ifs
Definition: kisen.h:27
「.ipx」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:67
const std::string & fileName() const
Definition: kisen.h:91
boost::gregorian::date startDate(size_t index)
開始日の年月日を返す
Definition: kisen.cc:183
std::ifstream ifs
Definition: kisen.h:68
size_t size() const
Definition: kisen.h:86
std::string player(size_t index, Player pl)
Definition: kisen.cc:139
std::string title(size_t index, Player pl)
Definition: kisen.cc:170
unsigned int rating(size_t index, Player pl)
Definition: kisen.cc:152
KisenIpxFile(std::string const &filename)
Definition: kisen.cc:130
unsigned int result(size_t index)
Definition: kisen.cc:162
const std::string file_name
Definition: kisen.h:70
「.ipx」という拡張子を持つ棋泉形式ファイル.
Definition: kisen.h:131
void save(const Record &, int black_rating, int white_rating, const std::string &black_title, const std::string &white_title)
Definition: kisen.cc:365
void writeStartDate(int year, int month, int day, int hour, int min)
Definition: kisen.cc:352
std::ostream & os
Definition: kisen.h:142
void writeRating(int rating)
Definition: kisen.cc:344
void writeString(const std::string &name, size_t length)
Definition: kisen.cc:328
KisenIpxWriter(std::ostream &ostream)
Definition: kisen.h:133
「.kpf」という拡張子を持つ棋泉プラス形式ファイル.
Definition: kisen.h:101
NumEffectState initialState() const
Definition: kisen.h:110
static const size_t maxMoves
Definition: kisen.h:107
NumEffectState initial_state
Definition: kisen.h:103
void load(size_t index, std::vector< Move > &, std::vector< int > &)
Definition: kisen.cc:221
std::ifstream ifs
Definition: kisen.h:104
std::vector< Move > moves(size_t index)
Definition: kisen.cc:213
KisenPlusFile(const std::string &fileName)
Definition: kisen.cc:203
size_t size() const
Definition: kisen.h:109
static Move convertMove(SimpleState const &state, int c0, int c1)
Definition: kisen.cc:18
static Square convertSquare(int pos)
Definition: kisen.cc:8
std::ostream & os
Definition: kisen.h:121
void save(const RecordMinimal &)
Definition: kisen.cc:283
KisenWriter(std::ostream &ostream)
Definition: kisen.h:118
int min(Player p, int v1, int v2)
Definition: evalTraits.h:92
Player
Definition: basic_type.h:8