Вопрос пользователя:
Ответ нейросети:
Вот пример программы на языке программирования C, реализующей игру "Жизнь" (Game of Life) с использованием символьной графики:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define ROWS 20
#define COLS 40
#define ALIVE_CELL '*'
#define DEAD_CELL ' '
int grid[ROWS][COLS];
void init_grid() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
grid[i][j] = rand() % 2;
}
}
}
void print_grid() {
system("clear");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%c", grid[i][j] ? ALIVE_CELL : DEAD_CELL);
}
printf("\n");
}
}
int count_neighbors(int row, int col) {
int count = 0;
for (int i = row - 1; i <= row + 1; i++) {
for (int j = col - 1; j <= col + 1; j++) {
if (i >= 0 && i < ROWS && j >= 0 && j < COLS && !(i == row && j == col)) {
count += grid[i][j];
}
}
}
return count;
}
void update_grid() {
int new_grid[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
int neighbors = count_neighbors(i, j);
if (grid[i][j] && (neighbors < 2 || neighbors > 3)) {
new_grid[i][j] = 0;
} else if (!grid[i][j] && neighbors == 3) {
new_grid[i][j] = 1;
} else {
new_grid[i][j] = grid[i][j];
}
}
}
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
grid[i][j] = new_grid[i][j];
}
}
}
int main() {
init_grid();
while (1) {
print_grid();
update_grid();
usleep(100000); // Установите скорость игры здесь (в микросекундах)
}
return 0;
}
Этот код создает случайную исходную конфигурацию игрового поля и запускает игру "Жизнь". Графика отображается в терминале в виде символов *
для живых клеток и пробелов для мертвых клеток. Игра обновляется каждые 100 миллисекунд (скорость обновления можно изменить, изменив значение usleep
).
Чтобы завершить игру, нажмите Ctrl+C
. Надеюсь, это поможет вам создать интерактивную игру "Жизнь" на языке программирования C.
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.