Загрузка данных


#include <stdio.h>
#define HEIGHT 25
#define WEIGHT 80
#define BALL_SYMBOL '*'

void PrintField(int paddle_left_y, int paddle_right_y,int paddle_left_x, int paddle_right_x, int ball_x, int ball_y) {
    for (int y = 0; y < HEIGHT; y++) {
        for (int x = 0; x < WEIGHT; x++) {
            if (y == 0 || y == HEIGHT - 1) {
                putchar('-');
            } else if (x == paddle_left_x &&
                       (y == paddle_left_y || y == paddle_left_y + 1 || y == paddle_left_y + 2)) {
                    putchar('|');
            } else if (x == paddle_right_x &&
                       (y == paddle_right_y || y == paddle_right_y + 1 || y == paddle_right_y + 2)) {
                    putchar('|');
            } else if (x == ball_x && y == ball_y) {
                putchar('o');
            } else {
                putchar(' ');
            }
        }
        putchar('\n');
    }
}

int main() {
    int paddle_left_y = 12;
    int paddle_right_y = 12;
    int paddle_left_x = 10;
    int paddle_right_x = WEIGHT - paddle_left_x;

    int player_left_score = 0;
    int player_right_score = 0;

    int vx = 2;
    int vy = 1;

    int ball_x = WEIGHT / 2;
    int ball_y = HEIGHT / 2;

    PrintField(paddle_left_y,paddle_right_y,paddle_left_x, paddle_right_x, ball_x, ball_y);
    
    while (1 == 1) {
        char input;
        if (scanf("%c", &input) != 1) {
            printf("n/a");
            return 0;
        }

        if (input != 'K' && input != 'M' && input != 'A' && input != 'Z' && input != ' ') continue;
        if (input == 'K' && paddle_right_y > 1) paddle_right_y--;
        if (input == 'M' && paddle_right_y < HEIGHT - 1 - 3) paddle_right_y++;
        if (input == 'A' && paddle_left_y > 1) paddle_left_y--;
        if (input == 'Z' && paddle_left_y < HEIGHT - 1 - 3) paddle_left_y++;

        if ((ball_x + vx == paddle_left_x && ball_y + vy >= paddle_left_y && ball_y + vy < paddle_left_y + 3) ||
        (ball_x + vx == paddle_right_x && ball_y + vy >= paddle_right_y && ball_y + vy < paddle_right_y + 3)) {
            vx = -vx;
        }

        if (ball_y + vy >= HEIGHT - 1 || ball_y + vy <= 0) vy = -vy;

        if (ball_x + vx < paddle_left_x) {
            player_left_score++;
            ball_x = WEIGHT / 2;
            ball_y = HEIGHT / 2;
            paddle_left_y = 12;
            paddle_right_y = 12;
        }

        if (ball_x + vx > paddle_right_x) { 
            player_right_score++;
            ball_x = WEIGHT / 2;
            ball_y = HEIGHT / 2;
            paddle_left_y = 12;
            paddle_right_y = 12;
        }

        ball_y = ball_y + vy;
        ball_x = ball_x + vx;

        PrintField(paddle_left_y,paddle_right_y,paddle_left_x, paddle_right_x, ball_x, ball_y);
    }
}