Я хотел создать игру о жизни на C, чтобы выучить C, но она не работает. Я только что заметил, что мой код не работает, когда я пытаюсь изменить переменную, созданную внутри функции, даже если я пытаюсь изменить ее внутри той же функции.
Когда я передаю val = 1 в комментарии и цвет в комментарии, код работает
поэтому val = 0 не вызывает проблем, ни color = {0,0,0,0}, потому что он не изменяет переменную.
Как я могу это исправить?
void next_grid(int nbc, int nbr,Cell tab[][120],Cell newtab[][120]){
for (int y = 0; y<120; y++){
for(int x = 0; x<120; x++){
int nb_neighbors = count_neighbors(tab,120,120,y,x);
int val = 0;
Color color = {0,0,0,0};
// When a cell is dead
if (tab[y][x].val == 0)
{
if (nb_neighbors == 3)
{
val = 1;
color = (Color) {230,160,0,255};
}
else{
val = 0;
color = (Color) {0,0,0,255};
}
}
{
if (nb_neighbors == 2 || nb_neighbors == 3)
{
val = 1;
color = (Color) {230,160,0,255};
}
else
{
val = 0;
color = (Color) {0,0,0,255};
}
}
newtab[y][x] = (Cell) {val,x,y,color};
}
}
// swap array
for (int y = 0; y<120; y++){
for(int x = 0; x<120; x++){
tab[y][x] = (Cell) newtab[y][x];
}
}
}