1 #ifndef _NTESUKI_NTESUKI_RECORD_H
2 #define _NTESUKI_NTESUKI_RECORD_H
8 #include "osl/checkmate/checkAssert.h"
10 #include "osl/state/hashEffectState.h"
40 static const unsigned int SIZE = 2;
123 return piece_stand<P>();
131 return piece_stand<BLACK>();
135 return piece_stand<WHITE>();
166 template <osl::Player A>
176 template <Player A>
void
206 for (; o < (int)
SIZE; o++)
244 template <Player A>
bool isByFixed()
const;
250 template <Player A>
bool isNtesuki(
int pass_left)
const;
251 template <Player A>
void setNtesuki(
int pass_left);
308 template <Player A>
bool
309 useOld(
int pass_left)
const;
311 template <Player A>
void
318 template <Player A>
bool
322 template <Player A>
void
326 template <Player A>
bool
329 return !loop_path_list<A>()[pass_left].empty();
335 template <Player P>
bool
339 template <Player P>
void
343 template <Player P>
void
354 template <Player P>
void
390 for (RecordPList::const_iterator it =
parents.begin();
393 if (*it == p)
return false;
413 RecordPList::iterator lp =
parents.begin();
414 if (
std::find(lvisited.begin(), lvisited.end(), *lp)
419 lvisited.push_front(*lp);
420 (*lp)->find_split(rhs, lvisited, rvisited);
421 lvisited.pop_front();
423 for (RecordPList::iterator lp =
parents.begin();
426 if (
std::find(lvisited.begin(), lvisited.end(), *lp)
429 lvisited.push_front(*lp);
430 (*lp)->find_split(rhs, lvisited, rvisited);
431 lvisited.pop_front();
458 RecordPList::iterator rp = rhs->
parents.begin();
459 if (
std::find(rvisited.begin(), rvisited.end(), *rp)
464 rvisited.push_front(*rp);
466 rvisited.pop_front();
470 for (RecordPList::iterator rp = rhs->
parents.begin();
471 rp != rhs->
parents.end(); ++rp)
473 if (
std::find(rvisited.begin(), rvisited.end(), *rp)
476 rvisited.push_front(*rp);
478 rvisited.pop_front();
508 lvisited.push_front(
this);
509 rvisited.push_front(p);
522 typedef CArray<PathEncodingList, SIZE>
pell_t;
715 template <Player P>
void
735 int pass_left)
const;
739 int pass_left)
const;