I was using objects which I create along with the built-in vector type. The compiler is throwing an error complaining about the type of the variables as I am setting them as parameters in the member functions. I am not sure why as the compiler recognizes them as objects by highlighting them, so I am unsure what the error is.
Where the error is occuring
#pragma once
#include "board.h"
#include "player.h"
#include "humanPlayer.h"
#include <vector>
class Game {
private:
int winner;
int X;
int Y;
bool** playerShip;
bool** computerShip;
public:
Game(int x, int y);
void startGame();
void WinScreen();
void LossScreen();
void ByeScreen();
void gameSetUpE(Board& B, humanPlayer User);
void gameSetUpS(Board& B, humanPlayer User);
void gameSetUpH(Board& B, humanPlayer User);
int playGame(Board& B, humanPlayer P1, Player P2);
char anotherGame();
void endGame(int num, Board& B);
void setWinner(int play) { winner = play; };
void setRecords(Board& B);
int getWinner() { return winner; };
bool getUserRecordVal(int row, int col);
bool getCompRecordVal(int row, int col);
int getRecordX() { }
void endGame(vector<Game> &list);
};
humanPlayer.h
#pragma once
#include "board.h"
#include "game.h"
#include <iostream>
using namespace std;
class humanPlayer : public Player{
private:
int hitsGotten;
int winHits;
int score;
public:
humanPlayer(int hits);
void makePlayerShip(Board& B, int length);
};
humanPlayer.cpp
#include "humanPlayer.h"
humanPlayer::humanPlayer(int hits){
winHits = hits;
hitsGotten = 0;
score = 0;
}
void humanPlayer::makePlayerShip(Board& B, int length) {
int startRow;
int startCol;
char Direction;
int Dint{};
int rowNum = B.getDimY();
int colNum = B.getDimX();
cout << " Ship Length " << length << endl;
cout << "Choose a row number between 1 and " << rowNum << endl;
cin >> startRow;
cout << "Choose a column number between 1 and " << colNum << endl;
cin >> startCol;
cout << "Choose a Direction (Horizontal(H) or Vertical(V))" << endl;
cin >> Direction;
if (toupper(Direction) == 'H') {
Dint = 0;
}
else if (toupper(Direction) == 'V') {
Dint = 1;
}
if ((startRow < 1) || (startCol > B.getDimY())) {
cout << "Starting row is out of range" << endl;
cout << "Choose a row number between 1 and " << rowNum << endl;
cin >> startRow;
}
if ((startCol < 1) || (startCol > B.getDimX())) {
cout << "Starting columns is out of range" << endl;
cout << "Choose a column number between 1 and " << colNum << endl;
cin >> startCol;
}
startCol = startCol - 1;
startRow = startRow - 1;
if (Dint == 0) {
int res0 = B.makeShipH(length, startRow, startCol);
if (res0 == 0) {
makePlayerShip(B, length);
}
}
else if (Dint == 1) {
int res1 = B.makeShipV(length, startRow, startCol);
if (res1 == 0) {
makePlayerShip(B, length);
}
}
else {
cout << "Please Try again" << endl;
makePlayerShip(B, length);
}
}