#pragma once using namespace std; class Board { char boardArray [8][8]; char turn = 'O'; public: Board(); moves parse(string input); char getTurn() { return turn; } bool isGameOver(); void changeTurns(); void displayBoard(); int charToIntColumn(char input) //converts column number to int { int kolumn; switch (input) { case 'A': kolumn = 0; break; case 'B': kolumn = 1; break; case 'C': kolumn = 2; break; case 'D': kolumn = 3; break; case 'E': kolumn = 4; break; case 'F': kolumn = 5; break; case 'G': kolumn = 6; break; case 'H': kolumn = 7; break; } return kolumn; } char intToCharColumn(int input) //converts column number to int { char kolumn; switch (input) { case 1: kolumn = 'A'; break; case 2: kolumn = 'B'; break; case 3: kolumn = 'C'; break; case 4: kolumn = 'D'; break; case 5: kolumn = 'E'; break; case 6: kolumn = 'F'; break; case 7: kolumn = 'G'; break; case 8: kolumn = 'H'; break; } return kolumn; } void move(string inputMove) { moves jugada = parse(inputMove); int row = 8 - (jugada.row); int kolumn = charToIntColumn(jugada.column); int temp = boardArray[row][kolumn]; int reflector = 1; if (row > 8 || row < 0 || kolumn > 8 || kolumn < 0) { cout<<"ERROR: index out of bound!"< 8 || row < 0 || kolumn > 8 || kolumn < 0) { cout<<"ERROR: index out of bound!"<= 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; } else return false; } } vector viewPossibleMoves() { vector output; for (int r = 0; r < 8; ++r) { for (int c = 0; c < 8; ++c) { if (boardArray[r][c] == turn) { if (isThisMovePossible(r,c,"FWD")) { moves temp(8-r,intToCharColumn(c+1),"FWD"); output.push_back(temp); } if (isThisMovePossible(r,c,"LEFT")) { moves temp(8-r,intToCharColumn(c+1),"LEFT"); output.push_back(temp); } if (isThisMovePossible(r,c,"RIGHT")) { moves temp(8-r,intToCharColumn(c+1),"RIGHT"); output.push_back(temp); } } } } return output; } void easyAI() { //1) see all possible movements vector listOfMoves = viewPossibleMoves(); //2) pick a movement 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]); //cout<<"\n\nMove executed by AI: "<