I am receiving an error with the board that I have which says "identifier board is undefined". I have created my board. I previously asked a question on Stack Overflow about the board when I used void draw() but the board was only local to the draw function and I used std::vector<std::vector<char>> board; but my other one had a lot of detail and I was able to use cout << and cin >> which I need to use meaning I would like to still stick with vector< vector<char> > board(mapSize, vector<char>(mapSize, '0'));
#include<Windows.h>
#include<iostream>
#include<vector>
using namespace std;
//specify the default value to fill the vector elements
int mapSize = 0;
int row = 0;
int column = 0;
int x = row = 0;
int y = column = 0;
int horizontal = 0;
int vertical = 0;
int player = 0;
void play();
void playAt();
bool hasLegalMoveFor(bool);
int main()
{
cout << "Enter the size of board. It should accept any size between 2 and 15. => ";
cin >> mapSize;
vector< vector<char> > board(mapSize, vector<char>(mapSize, '0'));
for (int i = 0; i < mapSize; i++) {
for (int j = 0; j < mapSize; j++) {
cout << board[i][j] << " ";
}
cout << endl;
play();
playAt();
return 0;
}
}
int CheckValid(int i, int j, int player) {
if (board[x][y] != 0)
return 0;
if (player == 1) {
if (board[x][y + 1] != 0 || y == 12)
return 0;
}
else {
if (board[x + 1][y] != 0 || x == 12)
return 0;
}
return 1;
}
void play()
{
bool player = horizontal;
while (true) {
cout << ("\n");
if (player == horizontal) {
cout << ("Horizontal to play");
}
else {
cout << ("Vertical to play");
}
if (!hasLegalMoveFor(player)) {
cout << ("No legal moves -- you lose! ");
return;
}
cout << ("Rows: ");
int row;
cin >> row;
cout << ("Column: ");
int column;
cin >> column;
//playAt(row, column, player);
player = !player;
}
}
void playAt() {
if (!board[x][y] && !board[x][y + 1] && player == horizontal) {
board[x][y] = true;
board[x][y + 1] = true;
}
else if (board[x][y] && !board[x + 1][y] && player == vertical) {
board[x][y] = true;
board[x + 1][y] = true;
}else {
cout << ("Not a legal move!");
}
}
bool hasLegalMoveFor(bool player) {
int rowOffset = 0;
int columnOffset = 0;
if (player == horizontal) {
columnOffset = 1;
}
else {
rowOffset = 1;
}
for (int x = 0; row < (8 - rowOffset); x++) {
for (int y = 0; y < (8 - columnOffset); y++) {
if (!(board[x][y] = board[x + rowOffset][y + columnOffset])) {
return true;
}
};
}
return false;
}
Aucun commentaire:
Enregistrer un commentaire