@HHabar
Новичок

Как чередовать значения в игре?

Здравствуйте, я запутался и не могу никак понять как чередовать значения крестика или нолика.
Чередоваться зависит от того, что выпало в рандоме.
int rnd() {
    char x;
    srand(time(NULL));
    return x = (rand()%2 ? 'X' : 'O');
}
// сделал триггер, но в чем-то сделал ошибку
int trg(int k) {
    return k = !k;
}
void fnctn(int aI[3][3], char aC[3][3]) {
    printf("Введите номер: ");
    int x = getchar() - '0', k = 0;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if( x == aI[i][j] ) {
                if(trg(k) && rnd() == 'X') {
                    aC[i][j] = 'O';
                } else {
                    aC[i][j] = 'X';
                }
            }
            printf("[ %c ]", aC[i][j]);
        }
        printf("\n");
    }
    k = !k; // не чередует
}
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 2
srand(time(NULL));
    return x = (rand()%2 ? 'X' : 'O');

Разве не будет возвращать постоянно одно и тоже значение?
Ответ написан
GavriKos
@GavriKos
У вас k в функции fnctn локальная - при новом обращении к функции старого значения давно нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы