3 #ifndef OSL_SIMPLE_STATE_TCC
4 #define OSL_SIMPLE_STATE_TCC
9 template <
bool show_error>
10 bool osl::SimpleState::isAlmostValidDrop(
Move move)
const
14 const Piece to_piece=pieceAt(to);
19 if (show_error) std::cerr <<
"drop on to piece : " << move << std::endl;
23 if (! hasPieceOnStand(turn,ptype)) {
24 if (show_error) std::cerr << turn <<
" don't have : " << ptype << std::endl;
28 if (ptype==
PAWN && isPawnMaskSet(turn, to.x())) {
29 if (show_error) std::cerr <<
" Double Pawn : " << move << std::endl;
35 template <
bool show_error>
37 osl::SimpleState::testValidityOtherThanEffect(
Move move)
const
40 const Piece from_piece = pieceAt(from);
42 const Piece to_piece=pieceAt(to);
45 || (from_piece.
owner() != turn()))
48 std::cerr <<
" No such piece0 : " << move << std::endl;
58 std::cerr <<
" No such piece1 : " << move << std::endl;
64 std::cerr <<
" can't promote promoted piece : " << move << std::endl;
74 std::cerr <<
" No such piece2 : " << move << std::endl;
80 if (show_error) std::cerr <<
" No move on : " << move << std::endl;
85 if (show_error) std::cerr <<
" Not such capture : " << move
86 << std::endl << *
this;