ratedMove.h
Go to the documentation of this file.
1 /* ratedMove.h
2  */
3 #ifndef OSL_RATEDMOVE_H
4 #define OSL_RATEDMOVE_H
5 
6 #include "osl/basic_type.h"
7 #include <iosfwd>
8 
9 namespace osl
10 {
11  namespace rating
12  {
13  class RatedMove
14  {
17  public:
18  RatedMove(Move move, int rating, int optimistic) : my_move(move), all_rating(rating), optimistic_rating(optimistic)
19  {
20  }
21  RatedMove(Move move, int rating) : my_move(move), all_rating(rating), optimistic_rating(rating)
22  {
23  }
24  RatedMove() : all_rating(0), optimistic_rating(0) {}
25  void setRating(int rating) { all_rating = rating; }
26  void setOptimisticRating(int rating) { optimistic_rating = rating; }
27 
28  const Move move() const { return my_move; }
29  int rating() const { return all_rating; }
30  int optimisticRating() const { return optimistic_rating; }
31  };
32 
33  std::ostream& operator<<(std::ostream& os, RatedMove const& moveLogProb);
34 
35  inline bool operator==(RatedMove const& lhs, RatedMove const& rhs)
36  {
37  return lhs.move()==rhs.move() && lhs.rating()==rhs.rating();
38  }
39  inline bool operator<(RatedMove const& lhs, RatedMove const& rhs)
40  {
41  if (lhs.rating() != rhs.rating())
42  return lhs.rating() < rhs.rating();
43  if (lhs.optimisticRating() != rhs.optimisticRating())
44  return lhs.optimisticRating() < rhs.optimisticRating();
45  return lhs.move() < rhs.move();
46  }
47  inline bool operator>(RatedMove const& lhs, RatedMove const& rhs)
48  {
49  if (lhs.rating() != rhs.rating())
50  return lhs.rating() > rhs.rating();
51  if (lhs.optimisticRating() != rhs.optimisticRating())
52  return lhs.optimisticRating() > rhs.optimisticRating();
53  return lhs.move() < rhs.move();
54  }
55  }
56  using rating::RatedMove;
57 } // namespace osl
58 
59 
60 #endif /* OSl_RATEDMOVE_H */
61 // ;;; Local Variables:
62 // ;;; mode:c++
63 // ;;; c-basic-offset:2
64 // ;;; End:
bool operator<(RatedMove const &lhs, RatedMove const &rhs)
Definition: ratedMove.h:39
bool operator>(RatedMove const &lhs, RatedMove const &rhs)
Definition: ratedMove.h:47
圧縮していない moveの表現 .
Definition: basic_type.h:1051
signed short optimistic_rating
Definition: ratedMove.h:16
int rating() const
Definition: ratedMove.h:29
RatedMove(Move move, int rating)
Definition: ratedMove.h:21
void setOptimisticRating(int rating)
Definition: ratedMove.h:26
const Move move() const
Definition: ratedMove.h:28
RatedMove(Move move, int rating, int optimistic)
Definition: ratedMove.h:18
signed short all_rating
Definition: ratedMove.h:16
bool operator==(RatedMove const &lhs, RatedMove const &rhs)
Definition: ratedMove.h:35
std::ostream & operator<<(std::ostream &os, RatedMove const &moveLogProb)
Definition: ratedMove.cc:6
int optimisticRating() const
Definition: ratedMove.h:30
void setRating(int rating)
Definition: ratedMove.h:25