PROGRAM PRG11_MAY;
USES GRAPH, CRT; VAR DRIVER, MODE, X, Y, X1, Y1, R: INTEGER; BEGIN R:= 80; X:= R*2; X1:= R*3; Y:= R*2; Y1:= R*3; DRIVER:= DETECT; INITGRAPH(DRIVER, MODE, 'C: \BP\BGI'); SETCOLOR(I); SETTEXTSTYLE(O, 0, 3); REPEAT X:= X+RANDOM(10); Y:= Y+RANDOM(10); SETFILLSTYLE(1, 13); BAR(X, Y, X+R, Y+R); OUTTEXTXY(X+5, Y+15,'КТО'); SETFILLSTYLE(1, 14); X1:= X1-RANDOM(10); Y1:= Y1-RANDOM(10); BAR(X1, Y1, X1+2*R, Y1+R); OUTTEXTXY(X1+5, Y1+15, 'СКАЗАЛ'); SETFILLSTYLE(1, 2); FILLELLIPSE(Y, 2*X1, R, R); OUTTEXTXY(Y-30, 2*X1-10, 'МЯУ'); DELAY(1500); CLEARDEVICE; UNTIL (KEYPRESSED); CLOSEGRAPH; END. Для решения задачи: - формируем тело программы и описываем переменные; - инициируем модуль GRAPH; - рисуем два прямоугольника и круг с текстом; - организуем цикл, в котором рисованные объекты двигаются до тех пор, пока не будет нажата любая клавиша. Переменные: X, Y, XI, Y1 - случайные координаты; R - радиус; DRIVER - тип графического драйвера; MODE - режим работы графического адаптера. Задача 11.13 Построить движущиеся изображения НЛО на фоне звездного неба. PROGRAM PRG11_NLO; USES GRAPH, CRT; VAR DRIVER, MODE, X, Y, R, I: INTEGER; BEGIN R:= 40; X:= R*5; Y:= R*2; DRIVER:= DETECT; INITGRAPH(DRIVER, MODE, 'C: \BP\BGI'); SETCOLOR(3); FOR I:= 1 TO 600 DO PUTPIXEL(RANDOM(I), RANDOM(I), I); REPEAT ELLIPSE(X, Y, 0, 360, R, (R DIV 3)+2); ELLIPSE(X, Y-4, 190, 357, R, R DIV 3); LINE(X-17, Y-16, X-25, Y-22); LINE(X+17, Y-16, X+25, Y-22); CIRCLE(X+25, Y-25, 2); CIRCLE(X-25, Y-25, 2); SETFILLSTYLE(1, 3); FLOODFILL(X+1, Y+4, 3); DELAY(150); CLEARDEVICE; FOR I:= 1 TO 600 DO PUTPIXEL(RANDOM(I), RANDOM(I), I); X:= X+RANDOM(10); Y:= Y+RANDOM(10); UNTIL (KEYPRESSED); CLOSEGRAPH END. Для решения задачи: - формируем тело программы и описываем переменные; - инициируем модуль GRAPH; - организуем безусловный цикл по переменной I и рисуем звездное небо; - организуем цикл до тех пор, пока не будет нажата любая клавиша; - в этом цикле рисуем НЛО с помощью двух эллипсов, двух линий и двух маленьких кружочков, держим его на экране, затем стираем изображение процедурой CLEARDEVICE; - опять рисуем звездное небо; - определяем случайным образом координаты следующего изображения НЛО; - после нажатия любой клавиши закрьшаем графический режим. Переменные: X, Y - случайные координаты; R - радиус; I - переменная цикла; DRIVER - тип графического драйвера; MODE - режим работы графического адаптера. Та же самая программа может быть написана с использованием пары процедур GETIMAGE(LX, LY, RX, RY, SAUCER") и PUTIMAGE(X, Y, SAUCER", XORPUT) [4]. Процедура GETIMAGE(LX, LY, RX, RY, SAUCER") помещает изображение в буфер, a PUTIMAGE(X, Y, SAUCER", XORPUT) выводит в заданное место изображение. Параметр XORPUT определяет способ вывода на экран - исключающее ИЛИ. Например, операторами GETIMAGE(LX, LY, RX, RY, SAUCER*);
|