Показать сообщение отдельно
Старый 22.05.2012, 14:54   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А впрочем, ладно - попробую объяснить смысл каждой из команд.

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070