Jump to content

Recommended Posts

Posted

Necessito de ajuda!

É assim estou a tentar construir um programa electrónico para jogar no euromilhões.

Tenho feito isto:

Public Class Form1
    Dim chave(0 To 5) As Integer
    Dim estrela(0 To 2) As Integer
    Dim aposta, aposta1, aposta2 As Integer
    Dim i, j, a, soma, soma1 As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        i = 0
        j = 0
        a = 0

        'Randomize
        For i = 1 To 5
            chave(i) = Int(Rnd() * 50) + 1
        Next
        'Randomize
        For i = 1 To 2
            estrela(i) = Int(Rnd() * 9) + 1
        Next
        For j = 1 To 5
            aposta1 = InputBox(" Insira os Números que quer apostar!")
            If aposta1 > 50 Then
                MsgBox("Valor Inválido!")
            End If
        Next
        For a = 1 To 2
            aposta2 = InputBox("Insira as estrelas que deseja apostar!")
            If aposta2 > 9 Then
                MsgBox("Valor Inválido!")
            End If
        Next


    End Sub

End Class

Falta-me saber como é que eu gero os cinco números e as duas estrelas, que vão dar a chave correctar para ser comparada com a introduzida pelo utilizador!

Posted

Acho que primeiro de tudo devias reformular o código.

For j = 1 To 5

            aposta1 = InputBox(" Insira os Números que quer apostar!")

            If aposta1 > 50 Then

                MsgBox("Valor Inválido!")

            End If

        Next

        For a = 1 To 2

            aposta2 = InputBox("Insira as estrelas que deseja apostar!")

            If aposta2 > 9 Then

                MsgBox("Valor Inválido!")

            End If

        Next

Aqui devias alterar a variavel aposta1 e aposta2 para 2 arrays, um com tamnho 5 (para os numeros) e outro com tamanho 2 (para as estrelas). Qd o utilizador inserir os números vais guardando nas posições dos arrays.

Para gerares a chave, fazes usas o rnd e metes noutros 2 arrays, novamente 1 para os numeros e outro para as estrelas. Após isso, para poderes comparar, depende do que tu queres fazer, mas penso que terá lógica se para além de indicares se a chave está totalmente correcta, devias mostrar a total de números acertados e estrelas. Para então comparares, terás que ler cada uma das posições do arrays que guarda a aposta do utilizador e comparar com todas as posições do array q guarda a chave. à medida que haja igualdade, incrementas uma variavel para te indicar o total de numeros correctos.

Não sei se estarei a confundir-te...mas foi uma resposta um bocado à pressa. Logo quando chegar a casa tentarei reformular esta resposta.

Posted
Option Explicit
Option Base 1
Dim estrelas(2) As Integer
Dim numeros(5) As Integer

Function estrela() As Integer
    Randomize
    estrela = Int((9 - 1 + 1) * Rnd + 1)
End Function

Function numero() As Integer
    Randomize
    numero = Int((50 - 1 + 1) * Rnd + 1)
End Function


Private Sub Command1_Click()
   Dim i As Integer
         
    estrelas(1) = estrela
    estrelas(2) = estrela
    While estrelas(2) = estrelas(1)
       estrelas(2) = estrela
    Wend
    For i = 1 To 5
        numeros(i) = 0
    Next
    '
    numeros(1) = numero
    numeros(2) = numero
    While numerorepetido(numeros(2), 2)
        numeros(2) = numero
    Wend
    numeros(3) = numero
    While numerorepetido(numeros(3), 3)
        numeros(3) = numero
    Wend
    numeros(4) = numero
    While numerorepetido(numeros(4), 4)
        numeros(4) = numero
    Wend
    numeros(5) = numero
    While numerorepetido(numeros(5), 5)
        numeros(5) = numero
    Wend
    '
    Me.Text1 = numeros(1)
    Me.Text2 = numeros(2)
    Me.Text3 = numeros(3)
    Me.Text4 = numeros(4)
    Me.Text5 = numeros(5)
    
    Me.Text6 = estrelas(1)
    Me.Text7 = estrelas(2)
End Sub


Function numerorepetido(n As Integer, inx As Integer) As Boolean
    Dim rep As Boolean
    Dim i As Integer
    rep = False
    
    For i = 1 To inx - 1
        If n = numeros(i) Then
           rep = True
           Exit For
        End If
    Next
    numerorepetido = rep
End Function

Private Sub Command2_Click()
   Me.Hide
   Unload Me
End Sub
Posted

precisas destes controles

form1

Textboxes :

Text1....Text2....Text3....Text4....Text5    (para os números)

Text6....Text7  (para as estrelas)

commandButtons :

Command1  ... para gerar

Command2  ....para sair

Posted

Acho que primeiro de tudo devias reformular o código.

For j = 1 To 5

            aposta1 = InputBox(" Insira os Números que quer apostar!")

            If aposta1 > 50 Then

                MsgBox("Valor Inválido!")

            End If

        Next

        For a = 1 To 2

            aposta2 = InputBox("Insira as estrelas que deseja apostar!")

            If aposta2 > 9 Then

                MsgBox("Valor Inválido!")

            End If

        Next

Aqui devias alterar a variavel aposta1 e aposta2 para 2 arrays, um com tamnho 5 (para os numeros) e outro com tamanho 2 (para as estrelas). Qd o utilizador inserir os números vais guardando nas posições dos arrays.

Para gerares a chave, fazes usas o rnd e metes noutros 2 arrays, novamente 1 para os numeros e outro para as estrelas. Após isso, para poderes comparar, depende do que tu queres fazer, mas penso que terá lógica se para além de indicares se a chave está totalmente correcta, devias mostrar a total de números acertados e estrelas. Para então comparares, terás que ler cada uma das posições do arrays que guarda a aposta do utilizador e comparar com todas as posições do array q guarda a chave. à medida que haja igualdade, incrementas uma variavel para te indicar o total de numeros correctos.

Não sei se estarei a confundir-te...mas foi uma resposta um bocado à pressa. Logo quando chegar a casa tentarei reformular esta resposta.

mas para isso ja tenho os arrays chave e estrela

Posted

viva pessoal,

Eu na escola tb tinha de fazer o euro milhões e acabei se quiserem tirar ideias tão á vontade ele vai anexo não tá nada de especial que eu nem 1 ano tenho de vb mas é só para terem uma ideia.

Um abraço

Posted

Option Explicit obriga à declaração de variáveis no VB

Option Base 1.....quer dizer que todos os arrays começam por indice 1

Nao respondeste ás perguntas:

"O que é a Function ?"

"Me.Hide e Unload Me nao é a mesma coisa ?"

Stay Cool

PS: Fiz um programa parecido mas com um grande erro, saiem nºs repetidos 😁

Posted

hide ... é como dz ... esconde....mas não remove da memória

e unload remove da memória

function é uma função que retorna um valor...é como uma função matemática

Posted

hide ... é como dz ... esconde....mas não remove da memória

e unload remove da memória

function é uma função que retorna um valor...é como uma função matemática

E por que é que ali usaste as duas ?

Posted

a formula dos números aleatórios é esta :

Int((limitemaximo - limiteminimo + 1) * Rnd + limiteminimo)

como as estrelas vão de 1...9

Apenas substitui, mas claro que 9 - 1 + 1 dá 9 😁

substitui apenas na formula e assim ficou

====

O hide e o unload uso sempre as duas porque é assim que retiro um form da memória, mesmo em programas minusculos...

Posted

O hide e o unload uso sempre as duas porque é assim que retiro um form da memória, mesmo em programas minusculos...

Entao mas se é para retirares da memória é só perciso o Unload ... 😁

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.