我正在尝试制作棋盘游戏。我必须输入.txt文件并使其几乎成为网格
F.F
...
.......
SSSSSSS
SSSSSSS
SSS
SSS
让它出来
7 F-.-F
|\|/|
6 .-.-.
|/|\|
5 .-.-.-.-.-.-.
|/|\|/|\|/|\|
4 S-S-S-S-S-S-S
|/|\|/|\|/|\|
3 S-S-S-S-S-S-S
|\|/|
2 S-S-S
|/|\|
1 S-S-S
a b c d e f g
这有点像我到目前为止,但我只是丢失了如何在输入信息之间添加字符
board.h的一部分
class BoardSet {
public:
void startingBoard(std::string line, int row);
void print();
private:
char board[6][6];
};
board.cpp的一部分
void BoardSet::startingBoard(std::string line, int row)
{
for(int i = 0; i < 7; i++)
{
board[row][i] = line[i];
}
}
void BoardSet::print()
{
int row = 7;
for(int i = 0; i < 7; i++)
{
for(int j = 0; j < 7;j++)
{
cout << board[i][j];
}
cout << endl;
}
}
main.cpp的一部分
void initalizeBoard(istream& in, BoardSet& board)
{
string line;
int row = 0;
getline(in, line);
while(in)
{
board.startingBoard(line, row);
row++;
getline(in, line);
}
board.print();
}
我需要的只是一个小小的指导,或者只是一个简单的例子,我可以从那里拿走它,我只是完全难过,不知道该怎么做。
答案 0 :(得分:0)
char board[6][7];
for(int i = 0; i < 7; i++)
{
for(int j = 0; j < 7;j++)
{
cout << board[i][j];
}
cout << endl;
}
你的数组是6个项目,每个项目深7个项目! 但你正在循环7 x 7?
还是我错过了这一点?
我无法看到您在txt文件中的位置。
我不相信......
void BoardSet::startingBoard(std::string line, int row)
{
for(int i = 0; i < 7; i++)
{
board[row][i] = line[i];
}
}
我认为这必须制动......因为你循环了7次...... 0,1,2,3,4,5,6 ......而你只是填充数组的第一个维度
试试这个......
void BoardSet::setupBoard() // edit
{
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 7;j++)
{
board[i][j] = line[i]; //////// board[i][j] = line[i];
}
}
}
void BoardSet::startingBoard(std::string line, int row)
{
for(int i = 0; i < 6; i++) // 6 not 7
{
board[row][i] = line[i];
}
}
void BoardSet::print()
{
int row = 7;
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 7;j++)
{
cout << board[i][j];
}
cout << endl;
}