Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Пинг понг на языке си

- Ученик (96), на голосовании 4 месяца назад
Как задать мячику отскок в пинг понге на языке c? Используя библиотеку stdio.h
Голосование за лучший ответ
Татьяна Просветленный (36374) 5 месяцев назад
Для создания простой симуляции отскока мяча в пинг-понге на языке C с использованием библиотеки stdio.h, можно реализовать основной цикл, который будет обновлять положение мяча и выводить его на экран.
 #include  
#include // для функции usleep()

#define WIDTH 40
#define HEIGHT 20

void clearScreen() {
printf("\033[H\033[J");
}

void drawBall(int x, int y) {
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
if (i == y && j == x) {
printf("O");
} else {
printf(" ");
}
}
printf("\n");
}
}

int main() {
int ballX = WIDTH / 2;
int ballY = HEIGHT / 2;
int velocityX = 1;
int velocityY = 1;

while (1) {
clearScreen();
drawBall(ballX, ballY);

// Обновление позиции мяча
ballX += velocityX;
ballY += velocityY;

// Проверка столкновения с границами и изменение направления
if (ballX <= 0 || ballX >= WIDTH - 1) {
velocityX = -velocityX;
}
if (ballY <= 0 || ballY >= HEIGHT - 1) {
velocityY = -velocityY;
}

// Задержка для замедления движения мяча
usleep(100000); // 100000 микросекунд = 0.1 секунд
}

return 0;
}
Объяснение кода:
Инициализация параметров:

WIDTH и HEIGHT задают размер поля.
ballX и ballY задают начальные координаты мяча.
velocityX и velocityY задают начальные скорости мяча по осям X и Y.
Функция clearScreen: Очищает экран с помощью последовательности управляющих символов.

Функция drawBall: Отрисовывает мяч на экране в его текущей позиции.

Главный цикл:

Очищает экран.
Отрисовывает мяч в текущей позиции.
Обновляет позицию мяча на основе его скорости.
Проверяет столкновения мяча с границами и меняет направление скорости при необходимости.
Добавляет задержку для регулировки скорости анимации.
Похожие вопросы