![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А не устраивать ли нам небольшие конкурсы по кодингу? [Delphi, Windows]
Darthman © (2004-06-21 23:23:00)
Страницы: < 1 2 ... 18 19 20 21 22 23 24 ... 52 53 >
Собственно, а почему нет?
Смотрите: Объявляется конкурс, далее не позже какого-то срока идет "сдача" проекта с полными исходниками публике. Все аспекты можно оговаривать в условиях конкурса (использование наработок, чужой графики, 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