C++ 2d字符阵列打印方块。我怎么修理它?
我想写一个井字游戏。 这是我的结构游戏:C++ 2d字符阵列打印方块。我怎么修理它?,c++,struct,C++,Struct,我想写一个井字游戏。 这是我的结构游戏: typedef struct { char tabuleiro[3][3]; int casas[9]; jogador* p; } jogo; 我有一个新的游戏功能,如下所示: void novoJogo(jogo* j, jogador* p) { int aux = 1; j->p = p; for (int i = 0; i < 9; ++i) j->casas
typedef struct {
char tabuleiro[3][3];
int casas[9];
jogador* p;
} jogo;
我有一个新的游戏功能,如下所示:
void novoJogo(jogo* j, jogador* p) {
int aux = 1;
j->p = p;
for (int i = 0; i < 9; ++i)
j->casas[i] = i+1;
for (int k = 0; k < 3; ++k) {
for (int i = 0; i < 3; ++i) {
j->tabuleiro[k][i] = (char) aux;
aux++;
}
}
jogar(j);
}
这是我的打印功能。我已经测试了一些东西,我不认为这里有bug,但你可以这样做:
void print(jogo* j) {
for (int k = 0; k < 3; ++k) {
for (int i = 0; i < 3; ++i) {
if (i == 0)
cout << j->tabuleiro[k][i] << " | ";
else if (i == 2)
cout << " | " << j->tabuleiro[k][i] << endl;
else
cout << j->tabuleiro[k][i];
}
}
}
void打印(jogo*j){
对于(int k=0;k<3;++k){
对于(int i=0;i<3;++i){
如果(i==0)
tabuleiro[k][i]可以cout tabuleiro[k][i])
吗?你正在用ASCII码1打印一个字符,而不是字符'1'
@IgorTandetnik这很有效!问题是:tabuleiro并不总是有整数。事实上,一旦游戏开始,它会很快被“X”和“O”填满。然后改变j->tabuleiro[k][i]=(char)aux
到j->tabuleiro[k][i]=“0”+aux
,您可以正常打印它。决定数组是包含字符还是包含整数,并坚持使用它。关键是感谢大家!@IgorTandetnik解决方案工作得很好。
void print(jogo* j) {
for (int k = 0; k < 3; ++k) {
for (int i = 0; i < 3; ++i) {
if (i == 0)
cout << j->tabuleiro[k][i] << " | ";
else if (i == 2)
cout << " | " << j->tabuleiro[k][i] << endl;
else
cout << j->tabuleiro[k][i];
}
}
}