Fórum Gerar números para a QUINA #180348
06/09/2003
0
Olá Pessoal,
Estou com um problema e gostaria que me ajudassem!
Estou escrevendo um pequeno aplicativo para gerar vários conjuntos de 5 números de apostas para a Quina! A quina tem 80 números que vão de 01 a 80. O sistema tem 5 statictext, que vão receber os números, um memo que acumula os números e um speedbutton que gera os números! No evento onclick do speedbutton tem o seguinte código:
procedure TFrmJogos.SpeedButton10Click(Sender: TObject);
var
i, r, s, t, u : integer;
begin
randomize();
i := random(81);
r := random(81);
s := random(81);
t := random(81);
u := random(81);
memo1.Lines.Add(inttostr(i) + ´ ´ + inttostr(r) + ´ ´ + inttostr(s) + ´ ´ + inttostr(t) + ´ ´ + inttostr(u) );
statictext1.Caption := inttostr(i);
statictext2.Caption := inttostr(r);
statictext3.Caption := inttostr(s);
statictext4.Caption := inttostr(t);
statictext5.Caption := inttostr(u);
end;
O meu problema é que o sistema, de vez em quando, gera o número zero ´0´ [que não é válido para a quina] e, também, repete dentro de um grupo de 5 números, um número repetido [que também não é válido para aquina].
Como eu faço para o sistema gerar sempre 5 números de 01 a 80 e que não se repitam no grupo de 5 ???
Download do código-fonte:
http://www.bswdigital.com/exemploquina.zip
[tamanho: 217 Kb]
Muito obrigado pela ajuda galera !!!
Walbert
31 - 3461-5311
Estou com um problema e gostaria que me ajudassem!
Estou escrevendo um pequeno aplicativo para gerar vários conjuntos de 5 números de apostas para a Quina! A quina tem 80 números que vão de 01 a 80. O sistema tem 5 statictext, que vão receber os números, um memo que acumula os números e um speedbutton que gera os números! No evento onclick do speedbutton tem o seguinte código:
procedure TFrmJogos.SpeedButton10Click(Sender: TObject);
var
i, r, s, t, u : integer;
begin
randomize();
i := random(81);
r := random(81);
s := random(81);
t := random(81);
u := random(81);
memo1.Lines.Add(inttostr(i) + ´ ´ + inttostr(r) + ´ ´ + inttostr(s) + ´ ´ + inttostr(t) + ´ ´ + inttostr(u) );
statictext1.Caption := inttostr(i);
statictext2.Caption := inttostr(r);
statictext3.Caption := inttostr(s);
statictext4.Caption := inttostr(t);
statictext5.Caption := inttostr(u);
end;
O meu problema é que o sistema, de vez em quando, gera o número zero ´0´ [que não é válido para a quina] e, também, repete dentro de um grupo de 5 números, um número repetido [que também não é válido para aquina].
Como eu faço para o sistema gerar sempre 5 números de 01 a 80 e que não se repitam no grupo de 5 ???
Download do código-fonte:
http://www.bswdigital.com/exemploquina.zip
[tamanho: 217 Kb]
Muito obrigado pela ajuda galera !!!
Walbert
31 - 3461-5311
Walbert
Curtir tópico
+ 0
Responder
Posts
06/09/2003
Aristodemo
Tente algo +/- assim:
...
const
Max = 81;
var
x, y: integer;
achou: boolean;
begi
randomize;
for x := 1 to 5 do
begin
Application.ProcessMessages;
repeat
Numero[x] := random(Max);
achou := false;
for y := 1 to 5 do if (Numero[x] = Numero[y]) then achou := True;
until (not achou) or (Numero[x] > 0);
end;
...
end
Não testei + acho que deve funcionar ai.
E se vc pretende vender esse prog... é 10¬ na minha conta!
heheheheheh
abraços...
...
const
Max = 81;
var
x, y: integer;
achou: boolean;
begi
randomize;
for x := 1 to 5 do
begin
Application.ProcessMessages;
repeat
Numero[x] := random(Max);
achou := false;
for y := 1 to 5 do if (Numero[x] = Numero[y]) then achou := True;
until (not achou) or (Numero[x] > 0);
end;
...
end
Não testei + acho que deve funcionar ai.
E se vc pretende vender esse prog... é 10¬ na minha conta!
heheheheheh
abraços...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)