#c #struct
#c #структура
Вопрос:
Я пытаюсь закодировать игру в крестики-нолики. Это моя структурная игра:
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);
}
Для меня все выглядит нормально, но каждый раз, когда я пытаюсь напечатать tabuleiro, я получаю это:
Я ожидал получить что-то вроде:
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
Это моя функция печати. Я протестировал несколько вещей, и я не думаю, что ошибка здесь, но здесь вы идете:
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];
}
}
}
Я также думаю, что стоит отметить, что я использую Clion от Jetbrains в качестве своей Ide.
Кто-нибудь знает, что здесь происходит?
Заранее спасибо!
Комментарии:
1. Сделайте это
cout << int(j->tabuleiro[k][i])
. Вы печатаете символ с ASCII-кодом 1, а не символ'1'
2. @IgorTandetnik это сработало! Дело в том, что в tabuleiro не всегда будут целые числа. На самом деле, как только игра запустится, она быстро заполнится буквами «X» и «O».
3. Затем измените
j->tabuleiro[k][i] = (char) aux
наj->tabuleiro[k][i] = '0' aux
, и вы сможете распечатать его нормально. Решите, будет ли массив содержать символы или целые числа, и придерживайтесь его.4. Ключ — это таблица ASCII и описание
5. Спасибо всем! Решение @IgorTandetnik сработало просто отлично.