AJUDA QUANTO A RANDOMIZACAO
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
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
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
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
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.
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.
O seu erro era que p1 estava sendo sempre 1 e p2 sempre -1 por isso caia sempre no primeiro IF
boas
vc ao fazer isto:
p1 = Int(2 * rdn + 1)
não esta a gerar nenhum numero aleatótio... será sempre 1
se quiser gerar entre o 1 e 2 faça:
se quiser gerar 1 e -1 faça:
té +
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