Сейчас 07:57:43 Среда, 27 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
рандом
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
Блокировки:
Запусти карту руками из игры

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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
Блокировки:
Ник тут писал про индийских кодеров- делай рандом для одного числа два-три раза

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Понедельник, 26 Марта 2012, 18:54:38 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Ty3uK, Да всеравно,по идеи он должен Проверять если true то новый рандом сделоть

 

Ty3uKДата: Понедельник, 26 Марта 2012, 19:00:11 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
А для чего эта система?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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)
---------------------------------------------
Индус*


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Понедельник, 26 Марта 2012, 19:28:49 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (SirNikolas)
Вообще-то два.

в карте 3 ,туту старый код

так джелать что мне?


 

Ty3uKДата: Понедельник, 26 Марта 2012, 19:48:43 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Так для чего нужны рандом трекаблы?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Понедельник, 26 Марта 2012, 19:49:40 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Ty3uK, для случайных херо

 

Ty3uKДата: Понедельник, 26 Марта 2012, 19:53:55 | Сообщение # 13
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
А... Опять херопик. Ну я бы вот как сделал (хотя ты вроде так и сделал) - при добавлении рандом трекабла сохранять на него буль, а потом его проверять- если есть, то делаем рандом снова

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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,также спасибо какому то сайт по делфи tomato smiletrollskip




Сообщение отредактировал Dreii - Вторник, 27 Марта 2012, 09:10:32
 

vov68Дата: Вторник, 27 Марта 2012, 12:25:07 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 1329
Награды: 3
Блокировки:
хотя я не понял в чём проблема, но вообще-то рэндом - это псевдо случайное число. и если его заказывать при старте карты подряд несколько раз, то можно получить повтор последовательности получаемых рэндомных чисел при разных стартах карты.
или вы о другом?


Зачем делать для других новые карты...
... лучше устроить коту божественный почесон. :)
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz