Нарисовать на экране круг зеленого цвета, который движется по горизонтали - C (СИ)
Формулировка задачи:
"Нарисовать на экране круг зеленого цвета, который движется по горизонтали, при достижении границы экрана превращается в квадрат и начинает движение в обратном направлении. Программа завершается нажатием любой клавиши. Рисование фигур оформить в виде процедуры."
Нарисовать на экране круг зеленого цвета, который движется по горизонтали
помогите пожалуйста подправить, чтобы комплилось на си
Решение задачи: «Нарисовать на экране круг зеленого цвета, который движется по горизонтали»
textual
Листинг программы
/* * Generated by TPTC - Translate Pascal to C * Version 1.7 03/26/88 (C) 1988 S.H.Smith */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <graphics.h> void Krg(int x, int y, int r, int c) { setcolor(c); setfillstyle(1,c); circle(x,y,r); floodfill(x,y,c); }; void Kvd(int x, int y, int d, int c) { setcolor(c); setfillstyle(1,c); rectangle(x - d,y - d,x + d,y + d); floodfill(x,y,c); }; main(int argc, char *argv[]) { int x, y, r, h; initgraph(&x,&y,""); outtextxy(getmaxx() / 2 - 30,20,"Vyhod - any key"); r = 10; x = r; y = getmaxy() / 2; do { while ((x < getmaxx() - r) && !kbhit()) { h = 5; x = x + h; Krg(x,y,r,10); delay(50); Krg(x,y,r,0); } while ((x > r) && !kbhit()) { h = -5; x = x + h; Kvd(x,y,r,10); delay(50); Kvd(x,y,r,0); } } while (!(kbhit())); };
Объяснение кода листинга программы
- #include
Включает в код функции для работы с файлами и вывода данных в консоль. - #include
Включает в код функции для работы с клавиатурой и обработки пользовательского ввода. - #include
Включает в код функции для работы с памятью и строками. - #include
Включает в код функции для работы с графикой. - void Krg(int x, int y, int r, int c) Функция для рисования круга заданного размера и цвета на экране.
- void Kvd(int x, int y, int d, int c) Функция для рисования прямоугольника заданного размера и цвета на экране.
- *main(int argc, char argv[])** Главная функция программы, в которой содержится основной код.
- int x, y, r, h; Объявление переменных для хранения координат и размеров круга.
- initgraph(&x,&y,``); Инициализация графической подсистемы с указанием дескрипторов для ввода и вывода.
- outtextxy(getmaxx() / 2 - 30,20,
Vyhod - any key
); Вывод текста на экран. - r = 10; x = r; y = getmaxy() / 2; Установка начального размера и положения круга.
- do { Начало цикла, который выполняется до тех пор, пока не будет нажата клавиша.
- while ((x < getmaxx() - r) && !kbhit()) Цикл, который выполняется, пока круг не выйдет за пределы экрана по горизонтали.
- { Начало блока кода, который выполняется внутри цикла.
- h = 5; x = x + h; Установка значения переменной
h
и увеличение координатыx
. - Krg(x,y,r,10); Вызов функции для рисования круга.
- delay(50); Задержка перед выводом следующего круга.
- Krg(x,y,r,0); Вызов функции для рисования круга другим цветом.
- } Конец блока кода, который выполняется внутри цикла.
- while ((x > r) && !kbhit()) Цикл, который выполняется, пока круг не выйдет за пределы экрана по вертикали.
- { Начало блока кода, который выполняется внутри цикла.
- h = -5; x = x + h; Установка значения переменной
h
и уменьшение координатыx
. - Kvd(x,y,r,10); Вызов функции для рисования прямоугольника.
- delay(50); Задержка перед выводом следующего прямоугольника.
- Kvd(x,y,r,0); Вызов функции для рисования прямоугольника другим цветом.
- } Конец блока кода, который выполняется внутри цикла.
- } while (!(kbhit())); Конец цикла, который выполняется до тех пор, пока не будет нажата клавиша.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д