00001 /* legal_moves.cc 00002 */ 00003 #include "osl/state/numEffectState.h" 00004 #include "osl/record/csa.h" 00005 #include "osl/record/csaRecord.h" 00006 #include "osl/container/moveVector.h" 00007 #include "osl/move_generator/legalMoves.h" 00008 #include "osl/apply_move/applyMove.h" 00009 #include <iostream> 00010 using namespace osl; 00011 00016 int main(int argc, char **argv) 00017 { 00018 NumEffectState state((SimpleState(HIRATE))); 00019 if (argc > 1) 00020 { 00021 const Record record = CsaFile(argv[1]).getRecord(); 00022 state = NumEffectState(record.getInitialState()); 00023 const vector<Move> moves=record.getMoves(); 00024 for (vector<Move>::const_iterator p=moves.begin(); p!=moves.end(); ++p) 00025 { 00026 ApplyMoveOfTurn::doMove(state, *p); 00027 } 00028 } 00029 MoveVector moves; 00030 LegalMoves::generate(state, moves); 00031 std::cout << moves; 00032 } 00033 00034 00035 00036 /* ------------------------------------------------------------------------- */ 00037 // ;;; Local Variables: 00038 // ;;; mode:c++ 00039 // ;;; c-basic-offset:2 00040 // ;;; End: