IPB
ЛогинПароль:

> Что можно улучшить в программе?, Небольшае программка для рисования деревца в псевдографике
_Артём_
сообщение 6.09.2012 22:50
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Недавно изучил рекурсивные функции в паскале, захотел потренироваться:

uses PTCCrt,PTCGraph;

var
gd,gm:integer;
x:char;


procedure tree (a,x,y,ls,df:integer);
var x1,y1,lsr,lsv1,lsv2,ng:integer;
begin
if df <> 1 then lsr:= (ls div df) + (ls*(random(3)*2-1) div 100)
else lsr:=ls;
x1 := round(x-sin(pi/180*a)*lsr);
y1 := round(y-cos(pi/180*a)*lsr);
line(x,y,x1,y1);
if df>1 then begin
ng:=((ls-lsr)*70 div 100);
lsv1:=random(round(sqrt(abs(sqr(ls-lsr)-((ls-lsr)*30 div 100))))-ng)+ng;
lsv2:=round(sqrt(abs(sqr(ls-lsr)-sqr(lsv1))));
if random(2)=1 then begin
tree (a+round(lsv1/(lsv1+lsv2+1)*32),x1,y1,lsv1,df-1);
tree (a-round(lsv2/(lsv1+lsv2+1)*32),x1,y1,lsv2,df-1);
end
else begin
tree (a-round(lsv1/(lsv1+lsv2+1)*32),x1,y1,lsv1,df-1);
tree (a+round(lsv2/(lsv1+lsv2+1)*32),x1,y1,lsv2,df-1);
end;
setcolor(white);
end;
end;


begin
gd:=10;
gm:=260;
initgraph(gd,gm,'');


randomize;
x:=readkey;
while x<>'a' do begin
tree(0,1024 div 2,768,1300,13);
x:=readkey;
cleardevice;
end;
closegraph;
end.


Что можно улучшить в этой программе?
Использую Free Pascal;
Модули PTCGraph и PTCCrt можно заменить на Graph и Crt
Пример работы:
Прикрепленное изображение

Сообщение отредактировано: _Артём_ - 6.09.2012 22:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 7.11.2024 23:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"