рандом
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 18:36:09 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Code int rndf=0 for(int i=0;i<=2;i++) { rndf=GetRandomInt(0,2) BJDebugMsg(I2S(rndf)) if LoadBoolean(Hash,rndf,20) { rndf=GetRandomInt(0,2) BJDebugMsg("New: "+I2S(rndf)) } SaveBoolean(Hash,rndf,20,true)
Вот такая контсрукция все 3 витка цикла дает 0 0 0 что делать?? я в панике нервы на исходе!!
Сообщение отредактировал Dreii - Понедельник, 26 Марта 2012, 19:29:04 |
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 18:42:31 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Запусти карту руками из игры
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 18:49:09 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ty3uK, Забыл про фикс разброс. Но фигня еще одна может и 3 разных дать(как нужно) а может 2 одинаковых а 1 случайное что делать
|
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 18:50:35 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ник тут писал про индийских кодеров- делай рандом для одного числа два-три раза
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 18:54:38 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ty3uK, Да всеравно,по идеи он должен Проверять если true то новый рандом сделоть
|
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 19:00:11 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| А для чего эта система?
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 19:01:06 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ty3uK, Для ранодмных трекаблей
|
|
|
|
SirNikolas | Дата: Понедельник, 26 Марта 2012, 19:13:17 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Dreii) все 3 витка цикла Вообще-то два.Quote (Ty3uK) Ник тут писал про индийских кодеров Индусских* Это была шутка.
Скорее всего, дело в фиксированном разбросе. Либо он действительно выдает случайные числа, но по случайности они все три одинаковые.
|
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 19:18:01 | Сообщение # 9 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Эн... А они для чего? Добавлено (26 Март 2012, 19:17:48) --------------------------------------------- Индусы- жители индии как бэ. Индусы == индийский житель Добавлено (26 Март 2012, 19:18:01) --------------------------------------------- Индус*
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 19:28:49 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Quote (SirNikolas) Вообще-то два. в карте 3 ,туту старый код
так джелать что мне?
|
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 19:48:43 | Сообщение # 11 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Так для чего нужны рандом трекаблы?
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 19:49:40 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ty3uK, для случайных херо
|
|
|
|
Ty3uK | Дата: Понедельник, 26 Марта 2012, 19:53:55 | Сообщение # 13 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| А... Опять херопик. Ну я бы вот как сделал (хотя ты вроде так и сделал) - при добавлении рандом трекабла сохранять на него буль, а потом его проверять- если есть, то делаем рандом снова
|
|
|
|
Borodach | Дата: Понедельник, 26 Марта 2012, 20:44:30 | Сообщение # 14 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Code integer array i integer mdf rand = 2 loop set mdf=Rndom(0,2) if i[mdf]!=1 then set i[mdf]=1 set rand=rand-1 endif exitwhen rand=0 endloop Может поможет...
Karamba
|
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 22:05:45 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Ничего не помогает. придеться писать свой АПИ по рандомному рандому.
|
|
|
|
Borodach | Дата: Понедельник, 26 Марта 2012, 22:26:41 | Сообщение # 16 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Dreii, Пфф... я ж тебе написал., проверь так с дебагом Code integer array i integer mdf rand = 2 loop set mdf=GetRandomInt(0,2) if i[mdf]!=1 then call BJDebugMsg(I2S(mdf)) set i[mdf]=1 set rand=rand-1 endif exitwhen rand=0 endloop
Karamba
Сообщение отредактировал Borodach - Понедельник, 26 Марта 2012, 22:27:22 |
|
|
|
Dreii | Дата: Понедельник, 26 Марта 2012, 22:55:02 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Code define break = exitwhen true library Randomize { private int array RandArr[8192] private int Size = 0
private bool Check(int val) { for(int i=0;i<=Size;i++) { if val == RandArr[i] { return false } } return true }
private bool Save(int val) { if Size > 8192 { return false } RandArr[Size] = val Size++ return true }
int Random(int low,int high) { int rnd = GetRandomInt(low,high),tmp=rnd while !Check(rnd) { if rnd<high && rnd>=tmp { rnd++ elseif rnd==high rnd=tmp-1 elseif rnd<tmp && rnd>low rnd-- elseif rnd<=low Size=0 rnd = Random(low,high) elseif rnd<low break } } if Save(rnd) { return rnd else Size=0 Save(rnd) return rnd } } оригинал взят у ScorpioT1000,также спасибо какому то сайт по делфи
Сообщение отредактировал Dreii - Вторник, 27 Марта 2012, 09:10:32 |
|
|
|
vov68 | Дата: Вторник, 27 Марта 2012, 12:25:07 | Сообщение # 18 |
10 уровень
Группа: Проверенные
Сообщений: 1329
Награды: 3
Блокировки:
| хотя я не понял в чём проблема, но вообще-то рэндом - это псевдо случайное число. и если его заказывать при старте карты подряд несколько раз, то можно получить повтор последовательности получаемых рэндомных чисел при разных стартах карты. или вы о другом?
Зачем делать для других новые карты... ... лучше устроить коту божественный почесон. :)
|
|
|
|