Probabilidade/Porcentagem

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Probabilidade/Porcentagem

Mensagem por luan.alc em Seg 26 Nov 2012, 14:02

Este é o mesmo post' que usei no facebook, mas como muitas pessoas não acessam o facebook constantemente !!

Como estou sem o meu gm, e quero voltar a programar abri o bloco de notas, e algo que muito quero aprender é probabilidade, porcentagem no game maker !

Então com meu bloco de notas aberto, fui escrevendo "códigos lógicos" usando a lógica integrada com o gamemaker, e deu nisso ...


Código:


OBJ :

gold, helm, brass, legs, spear, spike, egg, shield ()

Inimigo[

OnCreate:

NewVar: lootON = not
NewVar: loot = random(4)
NewVar: Dropar = x

OnMouseLeftClick:

if loot = 1 or 4 {

lootON = yes

}else {lootON = not};

if lootON = yes {

Dropar = < É AQUI QUE ENTRA EM AÇÃO O QUE EU DESEJO APRENDER, PROBABILIDADE, PORCENTAGEM ... MINHA INTENÇÃO SERIA....

GOLD : TER UMA CHANCE DE 33% DE APARECER, E QUANDO APARECESSE RANDOMIZAR DE 1 ~ 7.

HELM : TER UMA CHANCE DE 12 % DE APARECER ( se aparecer só 1 )

BRASS : TER UMA CHANCE DE 6 % DE APARECER ( || )

SHIELD : TER UMA CHANCE DE 2 % DE APARECER ( || )

Itens não citados não apareceriam ...

>

]


Como eu vou trabalhar com probabilidade e porcentagem no GAME MAKER !????

Obrigado a todos @

luan.alc

Ranking : Nota B
Número de Mensagens : 293
Idade : 20
Data de inscrição : 13/03/2012
Notas recebidas : B
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por theguitarmester em Seg 26 Nov 2012, 14:43

Bem Vindo DeVolta Luan.Alc


Não entendi muito bem seu exemplo.

se fala Probabilidade de Aleatório, Você já está usando o Random, no exemplo
loot = random(4) que voltará um numero quebrado ou inteiro entre 0 e 4. Mas se quizer só inteiro coloque o I na frente do Random, que é uma outra função do GameMaker(estava lendo o que há denovo no GM8, e essa função é nova), coloque irandom(4) para retornar um número real entre 0 e 4.

e para fazer porcentagem é questão de matemática:
(EX:) para fazer 15% de 50 faça a Seguinte conta
15* (50/100) que dará 7,5
15% de 100 = 7,5

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por luan.alc em Seg 26 Nov 2012, 14:49

Ah é verdade tinha esquecido do Irandom, no caso a variável DROPAR, teria os valores referentes a cada item que iria dropar , e eu queria uma porcentagem ..

que código no game maker eu usaria para poder calcular uma chance no caso citada acima, e depois se cair dentro desta porcentagem ele adicionar um valor na variável DROPAR ..


me entende ?

luan.alc

Ranking : Nota B
Número de Mensagens : 293
Idade : 20
Data de inscrição : 13/03/2012
Notas recebidas : B
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Kabeção em Ter 27 Nov 2012, 14:02

Se quer 12% de chance para algo

Código:
if random(1) < 0.12
// Outra forma
if irandom(100) < 12

Só testar o resultado de um random com valor proporcional a 100% e a porcentagem desejada.


Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Zero. em Ter 27 Nov 2012, 15:16

é como o Kabeção disse.

Tipo:
chance=irandom(100) // 100%

//loot1 de 10%
if chance<=10
{//dropa tal coisa}

//loot2 de 23%
if chance<=23 and chance>10
{//dropa tal coisa}

é simples ;D


Última edição por FlyAway em Ter 27 Nov 2012, 17:49, editado 1 vez(es)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por saim em Ter 27 Nov 2012, 16:05

Probabilidade é um assunto perigoso.
Existe diferença entre "if random(100) < 12" e "if irandom(100) < 12" e não é apenas a diferença entre "random" e "irandom", a probabilidade é diferente. "random" te dá qualquer número, inteiro ou não, entre zero e o argumento, excluindo-se o argumento. "irandom" te retorna um inteiro entre zero e o argumento, INCLUINDO o argumento, quando ele for inteiro. E o certo é usar "random".

Não acredita? Pense pequeno. Suponha que você quer 50% de chance, usando os valores 1 e 2.
if random(2) < 1 - você terá true pra metade do intervalo de resultados possíveis
if irandom(2) < 1 - você terá true pra 1 dos 3 (0, 1 e 2) resultados possíveis

Reescrevi esse post umas 5 vezes antes de conseguir um argumento preciso.

Mas foi o código do FlyAway que me levou a postar. Faltou um "else", ali. Sem o else, sempre que ele dropar o loot1, ele dropará TAMBÉM o loot2.
Ah, e com o else, o loot2 terá (23-10)=13% de chance de aparecer. Desconsiderando o erro do "irandom".

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Zero. em Ter 27 Nov 2012, 17:48

saim, é sim um problema o uso do irandom, até porque se o valor da porcentagem for quebra da ficará complicado (ex: 1,55)

E eu utilzoo a porcentagem com um a menos no caso de irandom e qndo vou utilizar valores com numeros decimais utilizo random.

E o caso do else, eu naum entendi *---* . Pq o código será lido da seguinte maneira: n?

a varial chance=irandom(100) será um numero entra 0~100

se chance for um valor menor ou igual a 10, tal ação acontece, se não ignora e segue pro próximo no caso o loot2 que se chance ( escrevi errado la em cima kkkkk) for maior que 10 e menor ou igual a 23 (no caso 23-10 = 13%) entao a outra ação acontece *---* agr entendi o else kkkkk. pode-se usar exit tb ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Kabeção em Ter 27 Nov 2012, 19:57

if irandom(2) < 1 - você terá true pra 1 dos 3 (0, 1 e 2) resultados possíveis
Faz tudo sentido. Gravado na memória.

@FlyAway
0 a 100 são 101% de chances.
Não se deve usar "<=" porque aumenta a chance em 1% ja que de 0 a 10 dá 11 possibilidades.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Zero. em Qua 28 Nov 2012, 01:40

Sim, por isso citei acima que nos códigos que utilo irandom eu colocoum a menos doque quero Happy .
Mas ainda sim o uso do irandom é perigoso, mtas vezes vc se passa por detalhes, isso ja me aconteceu *---*

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Probabilidade/Porcentagem

Mensagem por Conteúdo patrocinado Hoje à(s) 15:59


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum