diff --git a/Board.cpp b/Board.cpp index c6d146b..d407bd7 100755 --- a/Board.cpp +++ b/Board.cpp @@ -521,28 +521,4 @@ void Board::snapshot(vector& inputVec, Board inputBoard) } inputVec.push_back(inputBoard); -} - -//move this to its own file -void Board::easyAI() -{ - //1) see all possible movements - - vector listOfMoves = viewPossibleMoves(); - - //obvious moves - if (false){ - return; - } - - //random - else { - srand(time(NULL)); - int randomChoice = rand() % (listOfMoves.size()-1) - 0; // choose a move betwen listOfMoves[0] to last element - - //3) execute movement - int temp = randomChoice; - - move(listOfMoves[randomChoice]); - } } \ No newline at end of file diff --git a/Board.h b/Board.h index f17eb4d..eecdeb3 100755 --- a/Board.h +++ b/Board.h @@ -40,5 +40,4 @@ public: void undo(Board& tablero); void interpret(string input, Board& tablero); void snapshot(vector& inputVec, Board inputBoard); - void easyAI(); }; \ No newline at end of file diff --git a/Engine.cpp b/Engine.cpp new file mode 100755 index 0000000..cf7acf9 --- /dev/null +++ b/Engine.cpp @@ -0,0 +1,109 @@ +#include +#include +#include +#include +#include "Engine.h" + + +Engine::Engine(){ + Board b = new Board(); +} + +void Engine::startGame(){ + cout<<"WELCOME\n"; + + cout<<"1. Play against AI?\n"; + cout<<"2. Play against a human?\n"; + //cout<<"CHANGE THIS TO PARSE THINGS\n"; + cout<<"Enter choice: \n"; + + int choice; + cin >> choice; + cout << "OK" << endl; + + string move; + + bool gameOver = false; + vector record; + b.snapshot(record,b); + + while (gameOver != true) + { + gameOver = b.isGameOver(); + + while(b.getTurn() == 'O' ) + { + b.displayBoard(); + cout<<"\nEnter command: "; + cin>>move; + b.interpret(move,b); + } + + + vector possibleMoves = b.viewPossibleMoves(); + + if (choice == 1) + { + cout << "a"; + b.easyAI(); + } + + else + { + while(b.getTurn() == 'X' ) + { + b.displayBoard(); + cout<<"\nEnter command: "; + cout<<"OK\n"; + cin>>move; + b.interpret(move,b); + } + } + + //b.snapshot(); + gameOver = b.isGameOver(); + + b.snapshot(record,b); + } + + //for debugging purposes + cout<<"Record:"< listOfMoves = viewPossibleMoves(); + + //obvious moves + if (false){ + return; + } + + //random + else { + srand(time(NULL)); + int randomChoice = rand() % (listOfMoves.size()-1) - 0; // choose a move betwen listOfMoves[0] to last element + + //3) execute movement + int temp = randomChoice; + + move(listOfMoves[randomChoice]); + } +} + +void Board::AI(){ + //do things here +} + +void Board::minMax(){ + //do more things here +} \ No newline at end of file diff --git a/Engine.h b/Engine.h new file mode 100755 index 0000000..da6f589 --- /dev/null +++ b/Engine.h @@ -0,0 +1,14 @@ +#pragma once + +#include "Board.h" + +using namespace std; + +class Engine { + Board b; + +public: + Engine(); + void startGame(); + void easyAI(); +}; \ No newline at end of file diff --git a/a.out b/a.out new file mode 100755 index 0000000..8a730d5 Binary files /dev/null and b/a.out differ diff --git a/test.cpp b/test.cpp index 7dd63ca..a0f9d72 100755 --- a/test.cpp +++ b/test.cpp @@ -1,76 +1,8 @@ -#include -#include -#include -#include -#include "Board.h" +#include "Engine.h" using namespace std; int main() { - cout<<"WELCOME\n"; - - cout<<"1. Play against AI?\n"; - cout<<"2. Play against a human?\n"; - //cout<<"CHANGE THIS TO PARSE THINGS\n"; - cout<<"Enter choice: \n"; - - int choice; - cin >> choice; - cout << "OK" << endl; - - Board b; - string move; - - bool gameOver = false; - vector record; - b.snapshot(record,b); - - while (gameOver != true) - { - gameOver = b.isGameOver(); - - while(b.getTurn() == 'O' ) - { - b.displayBoard(); - cout<<"\nEnter command: "; - cin>>move; - b.interpret(move,b); - } - - - vector possibleMoves = b.viewPossibleMoves(); - - if (choice == 1) - { - b.easyAI(); - } - - else - { - while(b.getTurn() == 'X' ) - { - b.displayBoard(); - cout<<"\nEnter command: "; - cout<<"OK\n"; - cin>>move; - b.interpret(move,b); - } - } - - //b.snapshot(); - gameOver = b.isGameOver(); - - b.snapshot(record,b); - } - - //for debugging purposes - cout<<"Record:"<