diff --git a/main.cpp b/main.cpp index e365e5b..4566296 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,7 @@ #include + using namespace std; // class piece @@ -31,7 +32,6 @@ using namespace std; // } // }; - string myToUpper(string input) { string output; @@ -72,8 +72,14 @@ struct moves column = columna; moveType = m; } + + void display() + { + cout<= 0) && (r+reflector <= 7) && (c+1 <= 7) ) return true; + if (boardArray[r+reflector][c+1] != pieceToMove && (r+reflector >= 0) && (r+reflector <= 7) && (c+1 <= 7) ) + { + return true; + } else return false; } else if (moveType == "LEFT") { - if (boardArray[r+reflector][c-1] != pieceToMove && (r+reflector >= 0) && (r+reflector <= 7) && (c+1 >= 0) ) return true; + if (boardArray[r+reflector][c-1] != pieceToMove && (r+reflector >= 0) && (r+reflector <= 7) && (c+1 >= 0) ) + { + return true; + } else return false; } @@ -525,6 +551,7 @@ class Board { if (boardArray[r][c] == turn) { + if (isThisMovePossible(r,c,"FWD")) { moves temp(8-r,intToCharColumn(c+1),"FWD"); @@ -547,6 +574,11 @@ class Board } } + // cout<<"\nnumber of possible choices: "< record; + +void undo(Board& tablero) +{ + if (record.size() < 2) + { + cout<<"nothing to undo"< input) @@ -585,13 +666,43 @@ void displayPossibleMoves(vector input) } } +void snapshot(vector& inputVec, Board inputBoard) +{ + if (inputVec.size() == 10) + { + inputVec.erase(inputVec.begin()); + } + + else if (inputVec.size() > 10) + { + cout<<"QUEUE OVERFLOW!"<>choice; + + if (choice == 1) cout<<"playing with AI..."<>move; - b.move(move); + interpret(move,b); } vector possibleMoves = b.viewPossibleMoves(); //displayPossibleMoves(possibleMoves); for debugging purposes - AI + if (choice == 1) + { + b.easyAI(); + } + + else + { + while(b.getTurn() == 'X' ) + { + b.displayBoard(); + cout<<"\nEnter command: "; + cin>>move; + interpret(move,b); + } + } - b.easyAI(); - + //b.snapshot(); gameOver = b.isGameOver(); + + snapshot(record,b); } + //for debugging purposes + cout<<"Record:"<