【发布时间】:2014-09-18 22:40:01
【问题描述】:
我正在开发一个程序,该程序允许用户与另一个人类玩家玩井字游戏。到目前为止,我已经创建了一个“板”和一系列选项,允许用户选择他们想要放置“x”或“o”的位置。但是,我的板子是一个多维数组,数据类型为 char。每当我尝试编辑此数组时,都会出现错误,我也无法在头文件中声明数组原型,然后在 cpp 文件中定义值。 我的问题是:我怎样才能声明这个数组,以便我能够在整个程序中修改它? 这是我目前所拥有的:
标题
class Game
{
public:
Game();
void printBoard();
void firstMove();
int updateBoard(int m);
private:
char board[3][3];
int userMove;
int x;
int y;
};
.cpp
#include "Game.h"
#include <iostream>
#include <string>
using namespace std;
Game::Game()
{
board[3][3]= {{'o','o','o'},{'o','o','o'},{'o','o','o'}}
}
void Game::printBoard()
{
for(x=0; x < 3; x++)
{
for(y =0; y<3; y++)
{
cout << board[x][y] << " " ;
}
cout << endl;
}
}
void Game::firstMove()
{ cout << endl;
cout << "Your move, enter where you want to place an 'x' " << endl;
cout << endl;
cout << "Top right (1)" << endl;
cout << "Top left (2)" << endl;
cout << "Center (3)" << endl;
cout << "Center top (4) " << endl;
cout << "Center bottom (5)" << endl;
cout << "Center right (6) " << endl;
cout << "Center left (7)" << endl;
cout << "Bottom right (8)" << endl;
cout << "Bottom left (9)" << endl;
cin >> userMove;
updateBoard(userMove);
}
int Game::updateBoard(int m)
{
switch(userMove)
case 1:
board[1][3] = 'x';
printBoard();
return 0;
}
每当我尝试运行此程序时,我都会遇到错误,可能还有其他方法可以在屏幕上打印出“板”,但到目前为止,这是我所知道的。
【问题讨论】:
-
我建议使用
std::array<std::array<char,3>,3>>而不是char board[3][3]。 -
数组为 0,基于
C++,将board[1][3]更改为board[0][2]
标签: c++ arrays multidimensional-array