diff --git a/Board.cpp b/Board.cpp
index b1473b4..b423b00 100755
--- a/Board.cpp
+++ b/Board.cpp
@@ -5,34 +5,42 @@
using namespace std;
Board::Board() {
- for (int i = 0; i < 2; ++i) {
+ for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 8; ++j) {
- boardArray[i][j] = 'X';
+ xpieces.push_back(new Piece(i, j, 'X'));
+ }
+ }
+ for (int i = 6; i < 8; ++i) {
+ for (int j = 0; j < 8; ++j) {
+ opieces.push_back(new Piece(i, j, 'O'));
+ }
+ }
+}
+
+bool Board::elemInXs(int r, int c){
+ for (int i = 0; i < xpieces.size(); ++i){
+ if (xpieces[i]->getX() == r && xpieces[i]->getY() == c){
+ return true;
}
}
-
- for (int i = 2; i < 6; ++i) {
- for (int j = 0; j < 8; ++j) {
- boardArray[i][j] = '_';
+ return false;
+}
+
+bool Board::elemInOs(int r, int c){
+ for (int i = 0; i < opieces.size(); ++i){
+ if (opieces[i]->getX() == r && opieces[i]->getY() == c){
+ return true;
}
}
-
- for (int i = 6; i <= 7; ++i) {
- for (int j = 0; j < 8; ++j) {
- boardArray[i][j] = 'O';
- }
- }
+ return false;
}
moves Board::parse(string input)
{
-
input = myToUpper(input);
- cout<getX() == 0){
+ cout<<"\n\n\nPlayer X wins!\n\n\n"<getX() == 7){
+ cout<<"\n\n\nPlayer O wins!\n\n\n"< 8 || row < 0 || kolumn > 8 || kolumn < 0)
- {
- cout<<"ERROR: index out of bound in move()!"< 8 || row < 0 || kolumn > 8 || kolumn < 0)
- {
- cout<<"ERROR: index out of bound in second move()!"< 8 || row < 0 || column > 8 || column < 0) {
+ cout<<"ERROR: index out of bound."<getType();
+ cout << "temp: " << temp << "\n";
+
+ if (temp != turn || temp == '_') {
+ cout<<"ERROR: attempting to move an invalid piece."<moveFwd();
}
-
- if (jugada.moveType == "FWD")
- {
-
- if(boardArray[row+reflector][kolumn] != '_')
- {
- cout<<"you can't move that piece forward"<getType() == temp)
cout<<"you hate your own team or something? you can't do that!"<moveLeft();
}
- else if (jugada.moveType == "RIGHT")
- {
- if (kolumn == 7)
- {
+ else if (jugada.moveType == "RIGHT") {
+ if (column == 7)
cout<<"Destination Spot out of range!"<getType() == temp)
cout<<"you hate your own team or something? you can't do that!"<moveRight();
}
-
- else
- {
- cout<<"Unrecognized movetype!"<getType();
if (pieceToMove != turn) //trying to move invalid piece
{
+ cout << "Error in Board::isThisMovePossible: trying to move a piece outside your turn.\n";
return false;
}
@@ -382,22 +233,26 @@ bool Board::isThisMovePossible(int r, int c, string moveType)
{
if (moveType == "FWD")
{
-
- if (boardArray[r+reflector][c] == '_') return true;
- else return false;
-
+ if (boardArray[r+reflector][c]->getType() == '_')
+ return true;
+ else
+ return false;
}
else if (moveType == "RIGHT")
{
- if (boardArray[r+reflector][c+1] != pieceToMove && (r+reflector >= 0) && (r+reflector <= 7) && (c+1 <= 7) ) return true;
- else return false;
+ if (boardArray[r+reflector][c+1]->getType() != 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;
- else return false;
+ if (boardArray[r+reflector][c-1]->getType() != pieceToMove && (r+reflector >= 0) && (r+reflector <= 7) && (c+1 >= 0) )
+ return true;
+ else
+ return false;
}
else return false;
@@ -412,7 +267,7 @@ vector Board::viewPossibleMoves()
{
for (int c = 0; c < 8; ++c)
{
- if (boardArray[r][c] == turn)
+ if (boardArray[r][c]->getType() == turn)
{
if (isThisMovePossible(r,c,"FWD"))
{
@@ -438,7 +293,7 @@ vector Board::viewPossibleMoves()
return output;
}
-
+*/
string Board::myToUpper(string input)
{
string output;
@@ -455,11 +310,6 @@ string Board::myToUpper(string input)
else output.push_back(input[i]);
}
- for (int i = 0; i < output.size(); ++i)
- {
- cout<