int main() { ChessBoard *chess = new ChessBoard(); ChessBoardView *chessView = new ChessBoardView(chess); ChessHistoryView *chessHistoryView = new ChessHistoryView(chess->getMoveList()); chess->Init(); int chV, chH, fV, fH; int k = 0; int f = 0; char info[MAX_INFO_SIZE]; bool fWhite = true; ifstream inFile("Test_SimpleQSandKSCastling.txt"); while (!inFile.eof()){ inFile >> info; chess->getMoveList()->AddSimpleMove(info, !fWhite); fWhite = !fWhite; k++; } chess->getMoveList()->setCurrentId(0); cout << "Redo() has started" << endl; while (chess->Redo()) {} cout << "Redo() has finished" << endl; int t = -1; while (t != 0){ cout << "Pick the action: (0 - Exit, 1 - Redo, 2 - Undo, 3 - Move)" << endl; cin >> t; if (t == 1){ if (chess->Redo()){ } else{ cout << "REDO impossible!" << endl; } } else if (t == 2){ if (chess->Undo()){ } else{ cout << "UNDO impossible!" << endl; } } else if (t == 3){ cout << "Make Move: (fromV, fromH, toV, to H)" << endl; cin >> chV >> chH >> fV >> fH; f = chess->makeMove(chess->GetPieceAt(chH, chV), fH, fV); /*if (f == MOVE_ENDGAME) t = 0;*/ } cout << ((chess->getCurrentPlayer()->getId() == 1) ? "WHITE" : "BLACK") << endl; }