Uses CRT, Graph; [COLOR=SeaGreen][B]{Подключаем дополнительные модули}[/B][/COLOR]
Var [COLOR=SeaGreen][B]{Объявляем переменные}[/B][/COLOR]
A:Word;
C:Char;
Begin
InitGraph(..); [COLOR=Red][B]{ТУТ САМОСТОЯТЕЛЬНО}[/B][/COLOR] [COLOR=SeaGreen][B]{Конфигурируем процедуру запуска графического режима и запускаем его}[/B][/COLOR]
Randomize; [COLOR=SeaGreen][B]{Включаем генератор случайных чисел}[/B][/COLOR]
SetLineStyle(SolidLn,0,ThickWidth); [COLOR=SeaGreen][B]{Устанавливаем стиль рисования линий - сплошная, жирная}[/B]
[/COLOR]Repeat [COLOR=SeaGreen][B]{Открываем цикл рисования квадратов}[/B][/COLOR]
A:=(Round(GetMaxY*0.1)+Random(Round(GetMaxY*0.9))) div 2; [COLOR=SeaGreen][B]{Случайным образом выбираем значение половины стороны квадрата от 0.05*Н до 0.45*Н, где Н - полная высота экрана в пикселах}[/B][/COLOR]
SetColor(1+Random(15)); [COLOR=SeaGreen][B]{Случайным образом выбираем цвет квадрата; нумерация цветов на картинке внизу}[/B][/COLOR]
Rectangle((GetMaxX div 2)-A,(GetMaxY div 2)+A,
(GetMaxX div 2)+A,(GetMaxY div 2)-A); [COLOR=SeaGreen][B]{Рисуем квадрат, указывая координаты левого нижнего и правого верхнего углов}[/B][/COLOR]
Delay(100); [COLOR=SeaGreen][B]{Даем задержку в 0.1 секунды, иначе никаких квадратов разглядеть будет просто невозможно}
[/B][/COLOR]SetColor(GetBkColor); [COLOR=SeaGreen][B]{Устанавливаем цвет, равный цвету фона}
[/B][/COLOR]Rectangle((GetMaxX div 2)-A,(GetMaxY div 2)+A,
(GetMaxX div 2)+A,(GetMaxY div 2)-A); [COLOR=SeaGreen][B]{Снова рисуем тот же квадрат, но уже фоновым цветом, в результате чего нарисованный квадрат исчезает}[/B][/COLOR]
If KeyPressed then C:=ReadKey; [COLOR=SeaGreen][B]{Проверяем, не нажата ли какая-нибудь клавиша, а если нажата, то ее мнемокод передаем переменной С}[/B][/COLOR]
Until C=#27; [COLOR=SeaGreen][B]{Если нажатая клавиша - это клавиша Esc, то завершаем цикл}[/B][/COLOR]
CloseGraph; [COLOR=SeaGreen][B]{Отменяем графический режим. Команда необязательная, но желательная}[/B][/COLOR]
End.