Conectar-se
Quem está conectado
35 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 35 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 20/04/2010
Número de Mensagens : 163
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

TEST CHANCE

em Sex 08 Jun 2012, 13:19
alguém sabe o código da função TEST CHANCE Action If Dice pra usar em code Action Code ?
tipo, tentei usar o choose, mas não serviu...
avatar
Ranking : Nota D
Notas recebidas : E+D
Data de inscrição : 26/05/2012
Número de Mensagens : 177
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.facebook.com/DragaoDeOuroJogo

Re: TEST CHANCE

em Sex 08 Jun 2012, 13:21
Posso até testar, mas de qualquer forma, você tem algo contra D&D ? pq, da para simplesmente fazer Action If Dice + Action Code . Não Quer tentar?
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 20/04/2010
Número de Mensagens : 163
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 13:27
nada contra, eh que como eh código de IA do inimigo, o código final vai ficar meio quilométrico... queria saber se tem algum código simplesmente por questão de organização.
__________________________

P.S.: assim deu certo tb, se nao achar o codigo, vai ter que ser assim msm, VLW cidmarcos
avatar
Ranking : Nota D
Notas recebidas : E+D
Data de inscrição : 26/05/2012
Número de Mensagens : 177
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.facebook.com/DragaoDeOuroJogo

Re: TEST CHANCE

em Sex 08 Jun 2012, 13:45
De nada, Ah, eu não achei, eu pensei até em fazer variável,
Chance = 100
instance_create with chance = 0-100
Não EXATAMENTE isso, mas tentei de várias formas fazer essa chance em GML, mas não consigui...

vai ter que ser D&D + GML mesmo... mas já que é por organização não vejo pq não.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 14:01
Tem, assim :
var qualquer=irandom(n)
if qualquer=(n-2)
{//tal coisa acontece}
if qualquer=(n-1)
{//tal coisa acontece}
if qualquer=n
{//tal coisa acontece}

Ai está dividido em 3 ou seja 1/3 ou 33,3...%
avatar
Ranking : Nota C
Notas recebidas : B-D
Data de inscrição : 06/01/2012
Número de Mensagens : 343
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://equipeevolution.forumeiros.com/

Re: TEST CHANCE

em Sex 08 Jun 2012, 14:21
Código:

Código:
floor(x)

Exemplo:

Código:
if (floor(random(2-1))=0)
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 15:44
O CLT tem toda a razao, o codigo é
Código:
if (floor(random(n-1))=0){o que vai acontecer}
Nota: n é o numero de lados que to queres testar.

Aconselho a sacares este programa:
4shared.com/file/VEHSNPjg/DragnDrop_to_GML_Converter.html?cau2=403tNull

Com isto vais poder converter D&D em codigo ( GML )
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 16:53
Sem o "-1", eu concordo. "random" te retorna um valor entre 0 e o número, mas nunca o número. Então, pra ter 50% de chances, você precisaria de um dade de 2 lados (em programação, isso é possível) ou um floor(random(2)).
floor(random(2-1)) é 100% de chances de acontecer.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 17:32
Certo saim.
Mas tipo o irandom(n) pode ser usado tb, ou o random é melhor ? (naum vi diferença)
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 09/03/2010
Número de Mensagens : 1035
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 43

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://www.www.ww.www

Re: TEST CHANCE

em Sex 08 Jun 2012, 21:06
Que eu me lembre o irandom serve para randomizar somente em números inteiros, ou sej,a sem números quebrados, seriam somente 1,2,3,4,5 etc... Já o random, passa pelos numeros quebrados, ou seja ficariam valores como 1,2, 2,4 e assim vai, mas como usou o floor ele arredonda pro inteiro mais proximo para baixo.
Me corrijam se eu estiver errado, mas que eu me lembre é isso mesmo.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: TEST CHANCE

em Sex 08 Jun 2012, 21:49
Random: número aleatório que é maior ou igual a zero e menor que o valor que você define no primeiro argumento.

Irandom: número inteiro aleatório que é maior ou igual a zero e menor que o número que você define no primeiro argumento.

Choose: retorna um dos valores.

Não recomendo o random neste caso.

Você pode usar o seguinte:

Código:
if  (irandom(6)==1)
{
//acontece 1 a cada 6 vezes
}

Ou você pode usar o choose mesmo, que também não recomendo neste caso, mas como você citou que não conseguiu, vou mostrar como funciona:

Código:

if choose(1,2,3,4,5,6,7) == 1
{
//acontece 1 a cada 7 vezes (pela teoria)
}
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sab 09 Jun 2012, 08:02
sim SAIM tens razao tem de ser este codigo
Código:
floor(random(n))

nota: n é igual ao lados que quers testar e assim ja dá certo é isso SAIM
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: TEST CHANCE

em Sab 09 Jun 2012, 08:19
mas o floor(random(x)) é desnecessário, basta usar irandom(n)
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: TEST CHANCE

em Sab 09 Jun 2012, 14:29
Já no caso do irandom, aí tem que usar o "-1", mesmo. irandom te retorna um inteiro aleatório entre 0 e o número dado como argumento INCLUSIVE. Assim, irandom(3) pode te retornar 0, 1, 2, ou 3, com chances iguais de cada resultado. Uma chance em 4.

Fico feliz que ninguém tenha sugerido usar round(random(n)). Nesse caso, as probabilidades de dar 0 ou n ficam diferentes das probabilidades de qualquer outro número e explicar isso é uma bost... é difícil. Ou você saca logo de cara, ou leva horas pra entender.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: TEST CHANCE

em Sab 09 Jun 2012, 14:45
@saim
Não duvido de sua afirmação.
Porém, no site wiki.yoyogames.com, está a seguinte definição:

Returns a random integer between 0 and x. The number is always smaller than x.

Em negrito, diz que o número sempre é menor que o argumento.

Aí fica a questão...

Até mais!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: TEST CHANCE

em Seg 11 Jun 2012, 15:24
Justamente! Essa afirmação se refere ao "random". Significa que random(4) jamais retornará 4. Pode retornar 3.999999...9, mas nunca 4. Isso é importante na questão de probabilidades, porque se retornasse 4, haveria uma possibilidade, ainda que improvável, de que floor(random(4)) retornasse 4 (já que floor não faz nada com números inteiros). Em muitos casos, essa situação causaria erros, o que é deveria ser impensável num jogo comercial.
No game maker 7, não tínhamos a função irandom, que veio pra facilitar muito nossa vida de estatísticos, então tínhamos que usar floor, ceil ou round. Na comunidade gringa (eu frequentava ela na época), isso vivia gerando loooongas discussões.

No caso do irandom, a definição é a seguinte:
irandom(x) Returns a random integer number between 0 and x (inclusive when x is an integer).
Olha que fácil! Se x for inteiro, ele tem chances de sair, se não for, o número que vai sair é um inteiro menor que x.

Então floor(random(3)) pode te retornar
0, 1 ou 2 - 3 alternativas
enquanto irandom(3) pode te retornar
0, 1, 2 ou 3 - 4 alternativas
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: TEST CHANCE

em Seg 11 Jun 2012, 16:19
No site wiki.yoyogames.com ele fala do irandom sim, do modo que falei.
Mas parece que a informação está errada.
Por isso fiquei na dúvida. Mas está certo o que você disse.

Até mais!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum