Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Алгоритмы и формулы
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Страницы: 1, 2, 3, 4
nosferatu
Как-то так?
Выбор одного из двух вариантов да - 60%, нет - 40%
Код
Program 1
var
a,k,S1,S2: integer;
begin
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<60
Then S1:= S1+a;
Else
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<40
Then S2:=S2+a;
Else
If S1<S2
Then Write('Yes');
Else Write('No');
end.

П.С. прогу не проверял, потому уверен, что надопускал кучу ошибок, прошу не ругать меня неразумного, а исправить (или переписать, если дело совсем плохо) и выложить правильный вариант.
Berserker
А для чего тебе это?
nosferatu
Для ФРПГ, лень с кубиками возиться.

Добавлено ([mergetime]1283685744[/mergetime]):
Немного поправил, чтобы можно было вводить вероятность
Код
Program 1
var
a,k,S1,S2: integer; V:real;
begin
read(V);
If V>99
Then V:=99;
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<v
Then S1:= S1+a;
Else
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<100-V
Then S2:=S2+a;
Else
If S1<S2
Then Write('Yes');
Else Write('No');
end.
Berserker
Держи: http://www.mediafire.com/download.php?cecqhad5amw1x70
nosferatu
Ну, можно и так)))
gamecreator
лучше используй рандомную прогу Берса (или сайт про ГСЧ), а то у тебя в коде действительно фигня. например, рандомайз только раз надо делать.
packa
Теперь я понимаю, почему мне всегда говорят TAB'ить код smile.gif
nosferatu
Я же этого не знаю.
Код
randomize;
repeat
a:=random(1);

Этот кусок я нашел в инете, остальное накорябал по памяти.
Потому и спрашивал.
Вообще вопрос с прогой отпал благодаря EtherniDee, разве что мне захочется создать прогу, сочетающую в себе свойства рандома и картостроя, эдакий полноценный симулятор боя, подстроенный под мою ФРПГ и который можно будет легко модернизировать... Но это уже не скоро.
packa
Носф, делай сразу МУД smile.gif
nosferatu
Не, лучше сразу сделать игру, которая будет сочитать все плюсы и прелести Спора, Фола, НоММ и ДаО.
packa
Не катит, тогда ГМ наф не нужен, и ты останешься без работы sad.gif
gamecreator
Цитата(nosferatu @ 05 Sep 2010, 22:14)
Не, лучше сразу сделать игру, которая будет сочитать все плюсы и прелести Спора, Фола, НоММ и ДаО.
и из этого списка вычеркнуть все кроме НоММ
FBX
Почему использование 128-битных регистров не дает прибавки к скорости в данном случае?:
Это основная часть цикла, верхняя и нижняя ничего особенного не содержат.

Код
@@loop:
     {$IFDEF XMM}       //отключено
     movups xmm0,[ecx]
     movups [ebx],xmm0
     add ecx,16
     add ebx,16
     sub edi,16
     {$ELSE}
     mov eax,[ecx]  //перемещение 4 байт
     mov [ebx],eax  // - // -
     add ecx,4 //прочитано из источника
     add ebx,4 //записано в результат
     sub edi,4 // - // -  
     {$ENDIF}

     {$IFDEF XMM}
     sub esi,4
     {$ELSE}
     dec esi     //счетчик движения по линии
     {$ENDIF}

     jg @@loop  //следующий пиксел


может я как-то неправильно тестил - зацикливал весь код много раз и в обоих вариантах время выполнения было примерно одинаковым, хоть и достаточно низким
Etoprostoya
MOVUPS - медленная команда, медленнее четырёх обычных MOV (для большинства процессоров). Используй MOVAPS, но для этого нужны блоки памяти смещённые __align(16), то есть что-то вроде

int __declspec(align(16)) X[1024], Y[1024];
__asm{
mov ecx, X;
mov edx, Y;
movaps xmm0, [ecx];
movaps [edx], xmm0;
}

А ещё быстрее будет код
__asm{
mov ecx, X;
mov edx, Y;
xor ebx, ebx;
LOOP:
movaps xmm0, [ecx+ebx];
movaps [edx+ebx], xmm0;
add ebx, 16;
cmp ebx, 1024;
jb LOOP;
}
FBX
Граждане товарищи, помогите с математикой...

Некоторый объект имеет 3 параметра, означающие его текущий поворот относительно трех осей координат. У объекта есть некоторая точка - точка наблюдения - так вот, относительно нее определено лево, право, верх и низ, и соответственно направление по/против часовой стрелки. Как изменить исходные значения поворота по заданным трем значениям поворота вправо, вверх и по часовой стрелке?
tolich
Преобразовать в кватернион, повернуть, преобразовать обратно.

Кстати, указанные тобой углы (влево-вправо, вверх-вниз, по ЧС- против ЧС) — называются сответственно "рысканье", "тангаж" и "крен".
FBX
Я вот что-то не пойму... если хранить в векторной форме угловую скорость/ускорение (при этом модуль - величина, и что-то вроде точки на поверхности сферы которая задает направление), как его привести к форме "вектор оси и угол, на который вокруг нее осуществляется вращение" (а лучше сразу в кватернион). Наверное что-то простое, только увы не пойму...
FBX
что-то тут не так, 3 степени свободы вращения походу нельзя засунуть в вектор...
ChASnock
facepalm.gif
FBX
Цитата(ChASnock @ 11 Dec 2010, 12:56) *
Помогите реализовать электричество в игре
Притом мне не надо рекурсивных алгоритмов
Надо найти, каким будет заряд (а также ток) на концах проводника (концов: 1..4) сопротивлением R ом через t (микро)секунд, если даны начальные заряды на концах (именно на концах!).


Уиии, надо спереть для мутноМейза
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.