我正在用C ++开展一个学校项目。
目前我的问题在于' placePiece'功能。我似乎无法将播放器的char值正确地放入代表游戏板的数组中,它总是似乎分配了' p' (玩家)和' c' (计算机)重视游戏板内完全随机的单元格。
放置片段功能:
bool placePiece(char** pBoard, int colSize, int rowSize, int columnSelection, char player)
{
char* pRow = pBoard[columnSelection];
for (int j = colSize; j >0; j--){
if(pRow[j] == ' '){
pRow[j] = player;
return true;
}
}
return false;
}
印刷板功能:
void printBoard(char** pBoard, int colSize, int rowSize){
for(int i = 0; i < rowSize; i++){ //Print the current values of each cell
char* pRow = pBoard[i];
for (int j = 0; j < colSize; j++) {
if(j==0){
std::cout << "|" << pRow[j] << "|";
}else{
std::cout << pRow[j] << "|";
}
}
std::cout << std::endl<<std::endl;
}
}
int main(总而言之,显然有很多缺失的代码可以完全完成未包含在此处的项目,因为它与手头的问题无关。)
int main(){
srand (time(NULL));
int32_t connectedPiecesToWin = 0;
int32_t rowSize = 0;
int32_t colSize = 0;
std::cout << "How many connected pieces does it take to win?" << std::endl;
std::cin >> connectedPiecesToWin;
rowSize = connectedPiecesToWin + 2;
colSize = connectedPiecesToWin + 3;
char** pBoard = NULL;
// initialize board
//Assign first dimension
pBoard = new char*[rowSize];
//Assign second dimension
for(int i = 0; i < rowSize; i++){
pBoard[i] = new char[colSize];
char* pRow = pBoard[i];
for(int j=0;j<colSize;j++){
pRow[j] = ' ';
}
}
char player = 'p';
do
{
int columnChoice = 0;
do
{
if (player == 'p')
{
printBoard(pBoard, colSize, rowSize);
std::cout << "Player's column: ";
std::cin >> columnChoice;
}
else
{
// computers turn
columnChoice = rand() % colSize;
}
} while (!placePiece(pBoard, colSize, rowSize, columnChoice, player));
printBoard(pBoard, colSize, rowSize);
return 0;
}