AJUDA QUANTO A RANDOMIZACAO

DRLEANDRO 15/03/2012 17:03:38
#397232
Olá Galera, tudo bom?

Estou criando um projeto que precisa admitir 2 funções para um mesmo CmdButton. Como se fosse um jogo de azar, hora ele deve ganhar, hora ele deve perder, mas no meu contador ele só está ganhando. Acho que Estou fazendo algo errado, alguém poderia me ajudar? Segue meu código:

Const GanhaMaior% = 1
Const PerdeMaior% = 2



Private Sub Command1_Click()
Dim p1 As Integer, p2 As Integer

p1 = Int(2 * rdn + 1)
p2 = Int(2 * rdn - 1)


If p1 = GanhaMaior Then

Vcon = Label1.Caption + 1000
Label1.Caption = Vcon

End If

If p2 = PerdeMaior Then

Vcon = Label1.Caption - 1000
Label1.Caption = Vcon

End If
End Sub
KERPLUNK 15/03/2012 17:21:29
#397237
Resposta escolhida
Private Sub Command1_Click()
Dim randomnum As Integer
randomnum = Random(0, 2)
If randomnum = 0 Then
Label1.Caption = [Ô]ganhou[Ô]
Else
Label1.Caption = [Ô]perdeu[Ô]
End If
End Sub

Function Random(Lowerbound As Long, Upperbound As Long)
Randomize
Random = Int(Rnd * Upperbound) + Lowerbound
End Function
DRLEANDRO 15/03/2012 17:51:22
#397241
Funcionou Perfeitamente!

Só queria entender depois, se puder, onde eu estava errando e como você conseguiu corrigir o erro.
Adaptei seu código para o contador e continuou funcionando.
KERPLUNK 15/03/2012 17:58:31
#397243
O seu erro era que p1 estava sendo sempre 1 e p2 sempre -1 por isso caia sempre no primeiro IF
GANDA.NICK 15/03/2012 18:09:34
#397245
boas

vc ao fazer isto:
p1 = Int(2 * rdn + 1)

não esta a gerar nenhum numero aleatótio... será sempre 1

p1 =int(rnd*2)    [ô]gera 2 resultados 0 e 1


se quiser gerar entre o 1 e 2 faça:

p1 =int(rnd*2)+1


se quiser gerar 1 e -1 faça:

p1 = IIf(Int(Rnd * 2) = 0, -1, 1)


té +
Tópico encerrado , respostas não são mais permitidas