Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А не устраивать ли нам небольшие конкурсы по кодингу? [Delphi, Windows]


Страницы:   1 2 ... 18 19 20 21 22 23 24 ... 52 53

Darthman ©   (2004-06-21 23:23:00) 

Собственно, а почему нет?
Смотрите: Объявляется конкурс, далее не позже какого-то срока идет "сдача" проекта с полными исходниками публике. Все аспекты можно оговаривать в условиях конкурса (использование наработок, чужой графики, vcl или api для вывода графики....).
Что скажите господа?

Если есть интересующиеся, то я как следует обдумаю вопрос и могу стать, собственно, устроителем этих конкурсов (мыслей у меня много).

ЧТо мы имеем с этого: Самое бесценное - обмен опытом. Легко - то что один сделает через зад, после опубликования исходников, он научится делать правильно (если другие все тоже через зад не сделали ;))) )


OSokin   (2004-07-25 16:00:00) [401]

[650] и [651]. Это правда. К тому же твой код - ты с ним можешь разобраться лучше. Это раз. У меня не дополнительных опенглюков. Это два. И третье - даже эти корабли пришельцев не уничтожаются.


Andr   (2004-07-25 15:40:00) [402]

to DeadMeat ©   (25.07.04 14:44) [650]
А ты что, доделывать не будешь?
Ты же обещал!


DeadMeat   (2004-07-25 14:44:00) [403]


> [643] OSokin   (24.07.04 13:55)

На врагов ты смотришь с самого начала... 5-пять корабликов пришелцев. Правда они сами в отпуске (лето всетаки) и поэтому корабли стоят на стоянке... А вообще если хочешь доделай, как я описывал ранее...

---
...Death Is Only The Begining...


cyborg   (2004-07-25 11:21:00) [404]


> [648] }{enon ©   (25.07.04 11:18)

Можешь, только поблагодарить не забудь в титрах где нибудь. Это конечно, если у тебя совесть есть, ежели её нет, то это делать совсем не обязательно.


}{enon   (2004-07-25 11:18:00) [405]

Собственно, тут появился один вопросик. Могу ли я использовать в своей игре чужой модуль (например, unit от чьего-нибудь ColorTetris'a)?


NailMan   (2004-07-24 21:10:00) [406]

Zer0 ©
Я заморачивался с 3DNow!. Фактически моя демка его активно использует, но об этом действительно надо в новой созданной ветке.

---
WBR, NailMan aka 2:5020/3337.13


cyborg   (2004-07-24 19:05:00) [407]

Попробуй ещё:

Result:=(v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z)<=((r1+r2)*(r1+r2));

Ещё одной проверкой меньше.


Zer0   (2004-07-24 18:46:00) [408]

1. для бенчмарков вычисления дистанции рекомендую создать отдельный тред
3. есть оптимизации на притирки ассемблеровских команд.
2. а никто не заморачивался с fpu? ;)


NailMan   (2004-07-24 15:18:00) [409]

Оффтоп:
Ха! интересные результаты получились на моем варианте тестилки:

алгоритмы поиска столкновения сфера-сфера(3D) на синглах:

алгоритм(полностью процедуру я привел выше):

sQ:=Sqr(v2.x-v1.x) + Sqr(v2.y-v1.y) + Sqr(v2.z-v1.z);
If sq<=((r1+r2)*(r1+r2)) then result:=true;


выдал результат на 1млн итераций: 55 нс/итерация

алгоритм:
 
sQ:=(v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z);
If sq<=((r1+r2)*(r1+r2)) then result:=true;


выдал результат на 1млн итераций: 27.2 нс/итерация

Проц AXP3000+(2100MHz), мозг 512 DDR400.

Результат без использования SQR быстрей в 2 раза чем с этой функцией.

А если модифицировать так:
If (v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z)<=((r1+r2)*(r1+r2)) then result:=true else result:=false;

то получается: 24.4 нс/итерация

Вот она где сила....

---
WBR, NailMan aka 2:5020/3337.13


OSokin   (2004-07-24 13:55:00) [410]

Слушайте, скачал с сайта паратрупер. Имхо, самая крутая графика в DeadMeat'а, но где враги?


wiz   (2004-07-23 18:27:00) [411]

2 NailMan: я почти не сомневался, что

function Fast_Distance_2D_nailman_fast( x : integer; y : integer ) : integer;
begin
Result := x*x + y*y;
end;

на int'ах будет очень быстрым. Я сам пользуюсь именно таким (только на double'ах), т.к. обычно нафиг не надо брать корень (можно сравнивать квадраты).


NailMan   (2004-07-23 18:19:00) [412]

Тоесть мой вариант на non-sqrt получился быстрее?

Сегодня у себя попробую потестить(AXP 3000+, DDR400 512Mb) аналогичный тест. И могу на AXP 2100+(DDR333) и Athlon 750(PC100).

---
WBR, NailMan aka 2:5020/3337.13


wiz   (2004-07-23 18:12:00) [413]

PPPS: для тех кто не хочет ждать до завтра пример:

//ПсихЪ code
function Fast_Distance_2D( x : integer; y : integer ) : integer;
var
mn : integer;
begin
x := abs( x );
y := abs( y );

if x < y then
  mn := x
else
  mn := y;

Result := ( x+y-( mn shr 1 )-( mn shr 2 )+( mn shr 4 ) );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;
 x,y,len:integer;
 worktime,dummy:double;
begin
dummy:=0;

TimerInit;
for i:=1 to max_iter do
 begin
 x:=random(10000)-5000;
 y:=random(10000)-5000;

 len:=Fast_Distance_2D(x,y);
 dummy:=dummy+len;
 end;
TimerTick;

edit1.text:=floattostr(dummy);
worktime:=timer_counter/max_iter * 10E9;
edit1.text:=format('%4.4f нс/выч',[worktime]);
end;

TimerInit, TimerTick - вызовы QueryPerformanceCounter;
dummy - чтобы компилер не "забил" на len;
edit1.text:=floattostr(dummy); - чтобы компилер не "забил" на dummy;
max_iter - очевидно количество итерации (1 000 000)


wiz   (2004-07-23 17:55:00) [414]

PPS: кстати, и там и там win2k-sp4 (если вдруг возникла мысль, что ОС может влиять на результат)


wiz   (2004-07-23 17:53:00) [415]

немного не в тему, но...

выдалась на работе свободная минутка, решил попробовать сравнить недавно обсуждавшиеся тут алгоритмы поиска расстояния... в целом написал прогу делающую один миллион вычислений расстояния (на входе - случайные числа) и вычисляющую время выполнения (через QueryPerformanceCounter)... получил на работе следующие результаты (пишу на память - ногами не бить):

ПсихЪ ver - 586 нс/выч
wiz ver - 546 нс/выч
cyborg ver - 526 нс/выч
nailman non-sqrt ver - 415 нс/выч
nailman sqrt ver - 802 нс/выч

машина - Intel Pentium-4 2.2Ghz / ram512Mb
(причём P4-Mobile если я правильно понимаю, т.к. ноутбук)

хотел послать результаты с работы, но все уже уходили, так что послал exe'шник домой и сделал то же самое дома:

ПсихЪ ver - 464 нс/выч
wiz ver - 487 нс/выч
cyborg ver - 434 нс/выч
nailman non-sqrt ver - 312 нс/выч
nailman sqrt ver - 1075 нс/выч

машина - P3-1200 / ram256Mb

сравнивая результаты... ВОПРОС!!!!!! почему P4 почти везде пасётся? почему нет ожидаемого улучшения на P3 (ПсихЪ->wiz->cyborg)? кто-нибудь занимался подобными вещами???

PS: если кому интересно - могу завтренько с утреца выложить бинарники/исходники


Darthman   (2004-07-23 10:27:00) [416]

up


Darthman   (2004-07-22 14:05:00) [417]

Ну вообщем-то оно не тривиальное, тут задачки и косяки будут.


RagE   (2004-07-22 12:57:00) [418]

Мне задание нравится, я с вами


ПсихЪ_задумчивый   (2004-07-22 11:25:00) [419]


> MegaVolt   (22.07.04 10:45) [633]

Дома у меня Хonix3D стоит. Правда очень древняя не крятнутая шаровара. Графика убогая, доступен толь Лёгкий режим игры, но наворотов там полно. Бонусы всякие, когда вражий шар врезается в твою линию, то от места удара начиает расползаться волна и пока она не достигла тебя ты ещё можешь завершить отрезание... Ну и прочие радости.


MegaVolt   (2004-07-22 10:45:00) [420]

Вот образец вдобавок не просто с шариками а с наворотами http://webfile.ru/32423


Страницы:   1 2 ... 18 19 20 21 22 23 24 ... 52 53

Наверх

Титульная страница Поиск, карта сайта Написать письмо