Jump to content
Sign in to follow this  
elementsky

[VB.NET] Euromilhões!

Recommended Posts

elementsky

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!

Share this post


Link to post
Share on other sites
Tiago Salgado

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.

Share this post


Link to post
Share on other sites
Delta
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

Share this post


Link to post
Share on other sites
UnKnowN

Dúvidas:

O que é a Option Explicit e Option Base ?

O que é a Function ?

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

Obrigado :cheesygrin:

Share this post


Link to post
Share on other sites
Delta

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

Share this post


Link to post
Share on other sites
Delta

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

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

Share this post


Link to post
Share on other sites
elementsky

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

Share this post


Link to post
Share on other sites
themiraclee

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

Share this post


Link to post
Share on other sites
UnKnowN

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 :cheesygrin:

Share this post


Link to post
Share on other sites
Delta

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

Share this post


Link to post
Share on other sites
UnKnowN

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 ?

Share this post


Link to post
Share on other sites
Delta

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 :cheesygrin:

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...

Share this post


Link to post
Share on other sites
UnKnowN

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 ... :cheesygrin:

Share this post


Link to post
Share on other sites
Tiago_22

Boas!

basea-m no code do Delta e fiz um programa.

fika aki anexado o meu .exe do euromilhoes esper k gostem :)

cumps  ;)

[actualizado]

Share this post


Link to post
Share on other sites
Tiago_22

....ups!!! se a minha stora de PT vi-se...  :wallbash:

tava distraido  :cheesygrin:

cumps  ;)

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×
×
  • 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.