|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2008, 23:25 | #1 |
Новичок
Джуниор
Регистрация: 22.12.2008
Сообщений: 1
|
Модуль Graph - Составить программу вывода в верхнюю часть экрана изображения двух "туч".
Вот задача:
Составить программу вывода в верхнюю часть экрана изображения двух "туч". При нажатии клавиши "Ввод" "тучи" начинают двигаться навстречу друг другу. В момент их касания начинает идти "дождь" только из перекрывающейся области, которая сначала увеличивается, а затем уменьшается по мере движения "туч". У меня есть две процедуры: одна делает две тучи: procedure tuchi; begin gd:=0; gm:=0; initgraph(gd,gm,''); tucha1:=1; tucha2:=500; readln; repeat delay(1000); setcolor(black); circle(tucha1,23,18); circle(tucha1+36,23,18); circle(tucha1+36+36,23,18); circle(tucha1+36+36+36,23,18); circle(tucha2,23,18); circle(tucha2+36,23,18); circle(tucha2+36+36,23,18); circle(tucha2+36+36+36,23,18); if tucha1=1 then way1:=2 else if tucha1=500 then way1:=1; if tucha2=1 then way2:=2 else if tucha2=500 then way2:=1; if way1=2 then tucha1:=tucha1+1 else tucha1:=tucha1-1; if way2=2 then tucha2:=tucha2+1 else tucha2:=tucha2-1; setcolor(lightgray); circle(tucha1,23,17); circle(tucha1+36,23,17); circle(tucha1+36+36,23,17); circle(tucha1+36+36+36,23,17); circle(tucha2,23,17); circle(tucha2+36,23,17); circle(tucha2+36+36,23,17); circle(tucha2+36+36+36,23,17); until keypressed; end; А другая дождь: procedure InitDrop(x1,y1: integer); begin putpixel(x1,y1+40,cyan); end; procedure KillDrop(x1,y1: integer); begin putpixel(x1,y1+39,black); end; procedure rain(power: real); var parameters: array [1..1000,1..2] of integer; i: integer; j: word; temp: real; procedure fill; begin end; begin temp:=power; for i:=1 to trunc(power) do begin xd:=random(50)+250; parameters[i,1]:=xd; yd:=random(480); parameters[i,2]:=yd; end; for j:=1 to 65280 do begin temp:=temp-c; power:=temp; KillDrop(parameters[trunc(power+1),1],parameters[trunc(power+1),2]+j); for i:=1 to trunc(power) do begin InitDrop(parameters[i,1],parameters[i,2]+j); delay(1); KillDrop(parameters[i,1],parameters[i,2]+j); fill; if parameters[i,2]+j = 480 then parameters[i,2]:=1-j; end; end; end; Помогите пожалуйста доработать. Уже две недели мучаюсь ничего не получается. Спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Модуль Graph | Викдон | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 12.11.2008 10:54 |
модуль Graph | odi_noki | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 25.09.2008 12:20 |
Модуль Graph | ShnapS | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 28.05.2008 00:44 |
Модуль Graph | LEX.darnica | Помощь студентам | 13 | 27.11.2007 19:15 |