Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoeFather

Simulador do sorteio da Megasena,

Recommended Posts

Olá!

 

Estou fazendo um simulador bem simples do sorteio da Megasena. Consegui fazer ele sortear randomicamente seis números dentro sessenta existentes.

Mas o que eu gostaria de fazer é, ao invés de quando sai um número repetido o programa buscar outro número randomizado, que ele simplesmente o exclua dos possíveis números a ser sorteados aquele que já saiu!

Veja abaixo o código que usei, após clicar no botão de comando:

 

var_cont = 10For var_cont = 10 To 1 Step -1	Randomizevar_rand = Int((60 * Rnd) + 1)txt_n1 = var_randvar_cont = 1	For var_cont2 = 10 To 1 Step -1	var_rand = Int((60 * Rnd) + 1)	txt_n2 = var_rand		If txt_n2 = txt_n1 Then	var_cont2 = 10	Else			var_cont2 = 1 		For var_cont3 = 10 To 1 Step -1		Randomize		var_rand = Int((60 * Rnd) + 1)		txt_n3 = var_rand				If txt_n3 = txt_n1 Or txt_n3 = txt_n2 Then		var_cont3 = 10		Else				var_cont3 = 1					For var_cont4 = 10 To 1 Step -1			var_rand = Int((60 * Rnd) + 1)			txt_n4 = var_rand						If txt_n4 = txt_n1 Or txt_n4 = txt_n2 Or txt_n4 = txt_n3 Then			var_cont4 = 10			Else			var_cont4 = 1								For var_cont5 = 10 To 1 Step -1				Randomize				var_rand = Int((60 * Rnd) + 1)				txt_n5 = var_rand							If txt_n5 = txt_n1 Or txt_n5 = txt_n2 Or txt_n5 = txt_n3 Or txt_n5 = txt_n4 Then				var_cont5 = 10				Else				var_cont5 = 1										For var_cont6 = 10 To 1 Step -1					var_rand = Int((60 * Rnd) + 1)					txt_n6 = var_rand								If txt_n6 = txt_n1 Or txt_n6 = txt_n2 Or txt_n6 = txt_n3 Or txt_n6 = txt_n4 Or txt_n6 = txt_n5 Then					var_cont6 = 10					Else										var_cont6 = 1										End If										Next var_cont6					End If							Next var_cont5						End If				Next var_cont4			End If			Next var_cont3	End If		Next var_cont2Next var_cont

Um grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola ...Voce pode criar um vetor que na hora de sortear o numero, verfica se ele ja esta no vetor, se nao estiver, voce adiciona no vetor e sorteia o proximo .... só que caso exista, ele terá que sortear de novo .....Não sei se é mais ou menos isso que voce quer .... porque até onde eu sei voce não consegue dar um random de 0 a 1000 menos o 3 por ex..... pelo menos o código ficaria 80% mais limpo !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola ...Voce pode criar um vetor que na hora de sortear o numero, verfica se ele ja esta no vetor, se nao estiver, voce adiciona no vetor e sorteia o proximo .... só que caso exista, ele terá que sortear de novo .....Não sei se é mais ou menos isso que voce quer .... porque até onde eu sei voce não consegue dar um random de 0 a 1000 menos o 3 por ex..... pelo menos o código ficaria 80% mais limpo !!!

O que eu queria evitar era esse "sortear de novo", uma vez que na Mega quando um número sai, depois o próximo será "randomizado" entre 1 e 59, depois entre 1 e 58 e assim sucessivamente!Mas agradeço a ajuda e vamos ver se alguém mais tem alguma idéia, nem que seja usando outro método que não o Rand.Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para informar os amigos, acabei descobrindo posteriormente que o sorteio da Mega bem como o da Quina não era bem do jeito que eu estava pensando e/ou fui informado!

Na verdade é sorteado primeiro a bola da dezena depois a da unidade, e com isso ficou mais fácil de fazer a programação do simulador do sorteio da mega:

 

Private Sub cmd_mega_Click()var_cont = 10For var_cont = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s6 = (var_rand * 10) + var_rand2If txt_s6 = 0 Then	txt_s6 = 60	ElseIf txt_s6 = 1 Then	txt_s6 = "01"	ElseIf txt_s6 = 2 Then	txt_s6 = "02"	ElseIf txt_s6 = 3 Then	txt_s6 = "03"	ElseIf txt_s6 = 4 Then	txt_s6 = "04"	ElseIf txt_s6 = 5 Then	txt_s6 = "05"	ElseIf txt_s6 = 6 Then	txt_s6 = "06"	ElseIf txt_s6 = 7 Then	txt_s6 = "07"	ElseIf txt_s6 = 8 Then	txt_s6 = "08"	ElseIf txt_s6 = 9 Then	txt_s6 = "09"End Ifvar_cont = 1For var_cont2 = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s7 = (var_rand * 10) + var_rand2If txt_s7 = 0 Then	txt_s7 = 60	ElseIf txt_s7 = 1 Then	txt_s7 = "01"	ElseIf txt_s7 = 2 Then	txt_s7 = "02"	ElseIf txt_s7 = 3 Then	txt_s7 = "03"	ElseIf txt_s7 = 4 Then	txt_s7 = "04"	ElseIf txt_s7 = 5 Then	txt_s7 = "05"	ElseIf txt_s7 = 6 Then	txt_s7 = "06"	ElseIf txt_s7 = 7 Then	txt_s7 = "07"	ElseIf txt_s7 = 8 Then	txt_s7 = "08"	ElseIf txt_s7 = 9 Then	txt_s7 = "09"End IfIf txt_s7 = txt_s6 Thenvar_cont2 = 10Elsevar_cont2 = 1For var_cont3 = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s8 = (var_rand * 10) + var_rand2If txt_s8 = 0 Then	txt_s8 = 60	ElseIf txt_s8 = 1 Then	txt_s8 = "01"	ElseIf txt_s8 = 2 Then	txt_s8 = "02"	ElseIf txt_s8 = 3 Then	txt_s8 = "03"	ElseIf txt_s8 = 4 Then	txt_s8 = "04"	ElseIf txt_s8 = 5 Then	txt_s8 = "05"	ElseIf txt_s8 = 6 Then	txt_s8 = "06"	ElseIf txt_s8 = 7 Then	txt_s8 = "07"	ElseIf txt_s8 = 8 Then	txt_s8 = "08"	ElseIf txt_s8 = 9 Then	txt_s8 = "09"End IfIf txt_s8 = txt_s6 Or txt_s8 = txt_s7 Thenvar_cont3 = 10Elsevar_cont3 = 1For var_cont4 = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s9 = (var_rand * 10) + var_rand2If txt_s9 = 0 Then	txt_s9 = 60	ElseIf txt_s9 = 1 Then	txt_s9 = "01"	ElseIf txt_s9 = 2 Then	txt_s9 = "02"	ElseIf txt_s9 = 3 Then	txt_s9 = "03"	ElseIf txt_s9 = 4 Then	txt_s9 = "04"	ElseIf txt_s9 = 5 Then	txt_s9 = "05"	ElseIf txt_s9 = 6 Then	txt_s9 = "06"	ElseIf txt_s9 = 7 Then	txt_s9 = "07"	ElseIf txt_s9 = 8 Then	txt_s9 = "08"	ElseIf txt_s9 = 9 Then	txt_s9 = "09"End IfIf txt_s9 = txt_s6 Or txt_s9 = txt_s7 Or txt_s9 = txt_s8 Thenvar_cont4 = 10Elsevar_cont4 = 1For var_cont5 = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s10 = (var_rand * 10) + var_rand2If txt_s10 = 0 Then	txt_s10 = 60	ElseIf txt_s10 = 1 Then	txt_s10 = "01"	ElseIf txt_s10 = 2 Then	txt_s10 = "02"	ElseIf txt_s10 = 3 Then	txt_s10 = "03"	ElseIf txt_s10 = 4 Then	txt_s10 = "04"	ElseIf txt_s10 = 5 Then	txt_s10 = "05"	ElseIf txt_s10 = 6 Then	txt_s10 = "06"	ElseIf txt_s10 = 7 Then	txt_s10 = "07"	ElseIf txt_s10 = 8 Then	txt_s10 = "08"	ElseIf txt_s10 = 9 Then	txt_s10 = "09"End IfIf txt_s10 = txt_s6 Or txt_s10 = txt_s7 Or txt_s10 = txt_s8 Or txt_s10 = txt_s9 Thenvar_cont5 = 10Elsevar_cont5 = 1For var_cont6 = 10 To 1 Step -1Randomizevar_rand = Int((6 * Rnd))var_rand2 = Int((10 * Rnd))txt_s11 = (var_rand * 10) + var_rand2If txt_s11 = 0 Then	txt_s11 = 60	ElseIf txt_s11 = 1 Then	txt_s11 = "01"	ElseIf txt_s11 = 2 Then	txt_s11 = "02"	ElseIf txt_s11 = 3 Then	txt_s11 = "03"	ElseIf txt_s11 = 4 Then	txt_s11 = "04"	ElseIf txt_s11 = 5 Then	txt_s11 = "05"	ElseIf txt_s11 = 6 Then	txt_s11 = "06"	ElseIf txt_s11 = 7 Then	txt_s11 = "07"	ElseIf txt_s11 = 8 Then	txt_s11 = "08"	ElseIf txt_s11 = 9 Then	txt_s11 = "09"End IfIf txt_s11 = txt_s6 Or txt_s11 = txt_s7 Or txt_s11 = txt_s8 Or txt_s11 = txt_s9 Or txt_s11 = txt_s10 Thenvar_cont6 = 10Elsevar_cont6 = 1End IfNext var_cont6End IfNext var_cont5End IfNext var_cont4End IfNext var_cont3End IfNext var_cont2Next var_contEnd Sub

Um grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como que é Joe, primeiro a dezena depois a unidade?Como assim?Por exemplo, ele sorteia o "2" e depois o "5", então o primeiro número sorteado é o "25", é isso?Estou perguntando só por curiosidade mesmo, hehehe...abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.