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