Jump to content

Euromilhões chave automática beta 2.4


Ridelight

Recommended Posts

http://img252.imageshack.us/img252/4223/01302007175917cq4.png

Informações


- Simulador de chaves para o jogo "Euromilhões"

Bugs detectados


- Apareçe o numero 0 nas chaves [FIXED]

- Dificuldades de execução por parte de determinados utilizadores [FIXED]

- Gera números repetidos dentro da chave  [FIXED]

Downloads disponíveis


Beta 2.4

Link to comment
Share on other sites

Fiz um programa semelhante em Pascal.

program euromilhoes;
uses wincrt;
var b,n,n1,a,n2,n3,n4,n5,es1,es2,z,y:integer;
    op,cont:byte;
    chave: array [1..50] of integer;
    estrela: array [1..6] of integer;

    label ran_es;

begin
clrscr;
writeln('Prima uma tecla para obter a sua chave'); readln;
randomize;
n:=0;

{inicio do random dos numeros}
n1:=random((50)+1);
chave[n1]:=n1;

repeat
  n2:=random((50)+1);
  chave[n2]:=n2;
until n2<>n1;

repeat
  n3:=random((50)+1);
  chave[n3]:=n3;
until (n3<>n2) and (n3<>n1);

repeat
  n4:=random((50)+1);
  chave[n4]:=n4;
until (n4<>n3) and (n4<>n2) and (n4<>n1);

repeat
  n5:=random((50)+1);
  chave[n5]:=n5;
until (n5<>n4) and (n5<>n3) and (n5<>n2) and (n5<>n1);
{fim do random dos numeros}

{inicio da ordenaçao dos numeros}
writeln('Numeros: ':6);
for b:=1 to 50 do
begin
  if chave[b]>0 then
     writeln(chave[b]:3);    
end;
{fim da ordenaçao dos numeros}

{inicio do random das estrelas}
writeln;
readln;
randomize;
es1:=random((5)+1);
estrela[es1]:=es1;

ran_es:
es2:=random((5)+1);
if (es2<>es1) and (es2>0) then
estrela[es2]:=es2
else
goto ran_es;
{fim do random das estrelas}

{inicio da ordenaçao da estrelas}
writeln('Estrelas: ');
      for b:=1 to 6 do
       
        if estrela[b]>0 then
       begin  writeln(estrela[b]:3);
        end;
{fim da ordenaçao das estrelas}

end.

Já não me lembro se tem algum bug, mas aparentemente não tem...

Uma coisa que fiz e que tu nao fizeste foi ordenar a chave, o que me deu um pouco mais de trabalho.

Neocore

Link to comment
Share on other sites

import random
numeros = range(1, 52)
estrelas = range(1, 10)

while len(numeros) > 5:
    numeros.pop(numeros.index(random.choice(numeros)))
numeros.sort()

while len(estrelas) > 2:
    estrelas.pop(estrelas.index(random.choice(estrelas)))
estrelas.sort()

print 'Chave:', numeros, 'Estrelas:', estrelas

Uma maneira de fazer em Python. Não sei se tenho os limites bem mas o que interessa é a lógica.

Depois mete o teu código Ridelight.

<3 life

Link to comment
Share on other sites

 Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciar.Click
        Dim MyValue As Integer = 0
        Dim i As Integer = 0
        Dim strMessage As String = ""
        Dim rop As Integer = 50
        Randomize()


        Do
            i += 1
            System.Threading.Thread.Sleep(50)
            MyValue = CInt(Int((50 * Rnd()) + 0))
            Num1.Text = MyValue.ToString
            Num1.Refresh()
            MyValue = CInt(Int((50 * Rnd()) + 0))
            Num2.Text = MyValue.ToString
            Num2.Refresh()
            MyValue = CInt(Int((50 * Rnd()) + 0))
            Num3.Text = MyValue.ToString
            Num3.Refresh()
            MyValue = CInt(Int((50 * Rnd()) + 0))
            Num4.Text = MyValue.ToString
            Num4.Refresh()
            MyValue = CInt(Int((50 * Rnd()) + 0))
            Num5.Text = MyValue.ToString
            Num5.Refresh()
            MyValue = CInt(Int((9 * Rnd()) + 0))
            Est1.Text = MyValue.ToString
            Est1.Refresh()
            MyValue = CInt(Int((9 * Rnd()) + 0))
            If i < rop Then
                Est2.Text = MyValue.ToString
            ElseIf strMessage = "" Then
                Est2.Text = MyValue.ToString
            Else
               Est2.Text = ((Int(Val(Today().DayOfWeek)) _
                 + strMessage.Length) Mod 10).ToString
            End If
          Est2.Refresh()
        Loop Until i = rop
    End Sub

Link to comment
Share on other sites

sugestão: Mete para ele mostrar os resultados por ordem crescente

E como faço isso ?

Como é uma amplitude de numeros pequena, colocas um array de 49 (para os numeros) e outro de 9 (para as estrelas).

Depois, conforme o numero randomizado colocas no seu respectivo array (por exemplo: sai o numero 37 --> fica na posição 37 do array dos numeros).

Fazes isso com os numeros todos e depois com as estrelas.

Para ordenares percorres o array com um ciclo for (de 1 a 49). Quando a posição for diferente de zero, mostras o numero. Assim ficas com os numeros ordenados por ordem crescente.

Ve o codigo que em pascal:

for b:=1 to 50 do
begin
  if chave[b]>0 then
     writeln(chave[b]:3);    
end;

Neocore

Link to comment
Share on other sites

se tiverem os numeros sorteados num array nao e nada dificil de ordenar, como sao apenas 5 numeros o Insertion Sort é eficaz. http://pt.wikipedia.org/wiki/Insertion_sort

Eu em php precisei de fzr uma coisa semelhante, mas era para escolher tres fotografias aleatorias mas que nao fossem iguais, e a minha maior dificuldade foi faze-las com que nao se repetissem, mas ate e bastante facil isso, na altura e ke na percebia um cu disto 😛

Link to comment
Share on other sites

  • 2 weeks later...

Por acaso tenho aqui um projecto dos meus primeiros dias de programação em C#, com a mesma função que esse. Está protegido contra repetição de números e apresenta-os por ordem crescente. O grafismo é que praticamente não existe, mas penso que o que interessa é se trabalha ou não.

Os links:

ficheiro exe - http://www.uploading.com/files/9V1T9UOS/Euromilh__es___Gerador_de_Chaves__FINALIZADO_.exe.html

source code - http://www.uploading.com/files/6Q4HQZ5M/Euromilh__es___Gerador_de_Chaves__FINALIZADO_.rar.html

Link to comment
Share on other sites

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