• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ridelight

Euromilhões chave automática beta 2.4

37 posts in this topic

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

0

Share this post


Link to post
Share on other sites

bem, já existem tantos iguais ao teu... Mas sempre é bom pra treinar ;)

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

0

Share this post


Link to post
Share on other sites

Boas!

Como estás a gerar os números?

Ha um ano ou dois fiz algo do gen para o totoloto com algoritmos genéticos e tal, mas acabei por deixar de lado porque as heuristicas que estava a usar não davam grandes dif de qualidade...

Good job ;)

0

Share this post


Link to post
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

0

Share this post


Link to post
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.

0

Share this post


Link to post
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

0

Share this post


Link to post
Share on other sites

Deu-me erro a instalar, Cannot download file. :P

Experimenta a nova versão, a beta 1.1 !

Beta 2 irá estar disponivel em principio amanhã !

0

Share this post


Link to post
Share on other sites

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

E como faço isso ?

0

Share this post


Link to post
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

0

Share this post


Link to post
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 :P

0

Share this post


Link to post
Share on other sites
logo a 1ª chave gerada, detectei um bug. 8-)

gerou as 2 estrelas com o numero 7.

0

Share this post


Link to post
Share on other sites

Esta nova versão já funciona. :P

Bom trabalho! :P

Mas está pior que a beta 1, gera umas chaves muito esquisitas, mas a sorte é mesmo assim, aleatória, mas está a gerar números repetidos nas chaves, ainda a pouco me gerou três vezes o 22 !  :D

0

Share this post


Link to post
Share on other sites

Como ainda não tens o sort implementado, dá uma vista no meu algoritmo que usa arrays. Talvez ainda o pudesse tornar mais eficiente se adiciona-se à lista apenas os que vou precisar.

0

Share this post


Link to post
Share on other sites

Viva, existe progressos qt a este programa? Não seria melhor um programa que gerasse os números aleatórios com base nos números que já sairam, através por exemplo de um ficheiro de entrada em que se colocava lá os números? É só uma ideia...

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

Download beta 2.1

Changelog


- Ordenar números por ordem crescente

- Não gerar numeros repetidos

- Problemas de compatibilidade

- Não necessita do .net framework

0

Share this post


Link to post
Share on other sites

01172007201932pm0.png

01172007202234kf7.png

Informações


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

- Na versão final ira permitir gerar até 5 chaves em simultâneo

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.1.1 (recomendado)

Changelog


- Alteração de grafismo

0

Share this post


Link to post
Share on other sites

:thumbsup:

entao rdlght  se eu acertar na chave no euromilhoes com a chave que foi gerada no teu soft... queres quanto % ?? :D:P

gostei do ambiente!!! :D

0

Share this post


Link to post
Share on other sites

entao rdlght  se eu acertar na chave no euromilhoes com a chave que foi gerada no teu soft... queres quanto % ?? :D :D

Sem jackpot 2%

Com jackpot 5%  :P

gostei do ambiente!!! :thumbsup:

O ambiente gráfico é ainda provisório, irá sofrer algumas alterações na versão final !

0

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