Ir para conteúdo
Fórum Script Brasil
  • 0

Sorteio De Times


Guest - Claudio -

Pergunta

Guest - Claudio -

OI pessoal tudo bom?

eu to com uma duvida..

eu preciso fazer um programa para sortear os times...

ex:

time 1 x time2

time 3 x tima 4

time 5 x time 6

quando clicar no botao sortar os times...

comoeu posso fazer???

algum me entendeu??

abraços claudio

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0
aleatoriamente...

Então, veja se isso serve:

var times  : array[0..9] of integer;
    i, qt, n, total : integer;
    achou : boolean;

begin
    randomize;
    qt := 0;
    i := 0;
    for i:=low(times) to high(times) do
      times[i] := -1;

    while qt<=high(times) do
    begin
      n := random(high(times)+1)+1;
      achou := false;
      for i:=low(times) to high(times) do
        if times[i]=n then
          achou := true;
      if not achou then
        begin
          times[qt] := n;
          qt := qt+1;
        end;
    end;

    total := trunc((high(times)-1)/2);
    for i:=0 to total do
    begin
      showmessage('Time ' + inttostr(times[i]) + ' : Time ' + inttostr(times[total+i+1]));
    end;

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Claudio -

como eu faço pra eles apareçerem em umlabel?

eu tentei

lbl_time1.caption := ('Time ' + inttostr(times) + ' : Time ' + inttostr(times[total+i+1]));

lbl_time2.caption := ('Time ' + inttostr(times) + ' : Time ' + inttostr(times[total+i+1]));

so que eles mostram o mesmo time...como fazer para invez de apareçer no showmessage apareçer em 10 labels?

Obrigado

CLaudio

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Claudio -

ae eu fiz assim:

  begin

    lbl_time1.caption := ('Time ' + inttostr(times) + ' x Time ' + inttostr(times[total+i-5]));

    lbl_time2.caption := ('Time ' + inttostr(times[i+1]) + ' x Time ' + inttostr(times[total+i-6]));

    lbl_time3.caption := ('Time ' + inttostr(times[i+2]) + ' x Time ' + inttostr(times[total+i-7]));

    lbl_time4.caption := ('Time ' + inttostr(times[i+3]) + ' x Time ' + inttostr(times[total+i-8]));

    lbl_time5.caption := ('Time ' + inttostr(times[i+4]) + ' x Time ' + inttostr(times[total+i+1]));

    end;

e deu certo... seria esse o geito certo mesmo,ou eu fiz uma gambiarra

?? =]]]

Abraços

Claudio

Link para o comentário
Compartilhar em outros sites

  • 0

Claudio eu não sei... mais já que estamos falando de futebol, eu estou com um pequeno problema...

eu to tentando fazer uma "Classificação" 1 colocado 2 colocado etc..

a duvida e a seguinte,

eu to tentando fazer uma classificação com 4 times... usei 4 labels de pontos....

lbl_ptos_time1

lbl_ptos_time2

lbl_ptos_time3

lbl_ptos_time4

como verificar qual label e maior?

eu tentei fazer com if mais não consegui fazer todos.... to meio confusso aki...

espero ter me expressado direito =]

se alguém me entendeu, e souber me ajudar...

Obrigado

Felipe

ps:Claudio desculpe usar o seu tópico...grato.

Link para o comentário
Compartilhar em outros sites

  • 0
ae eu fiz assim:

  begin

    lbl_time1.caption := ('Time ' + inttostr(times) + ' x Time ' + inttostr(times[total+i-5]));

    lbl_time2.caption := ('Time ' + inttostr(times[i+1]) + ' x Time ' + inttostr(times[total+i-6]));

    lbl_time3.caption := ('Time ' + inttostr(times[i+2]) + ' x Time ' + inttostr(times[total+i-7]));

    lbl_time4.caption := ('Time ' + inttostr(times[i+3]) + ' x Time ' + inttostr(times[total+i-8]));

    lbl_time5.caption := ('Time ' + inttostr(times[i+4]) + ' x Time ' + inttostr(times[total+i+1]));

    end;

e deu certo... seria esse o geito certo mesmo,ou eu fiz uma gambiarra

?? =]]]

Abraços

Claudio

Sim, está certo. É isso que o loop faz.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Claudio eu não sei... mais já que estamos falando de futebol, eu estou com um pequeno problema...

eu to tentando fazer uma "Classificação" 1 colocado 2 colocado etc..

a duvida e a seguinte,

eu to tentando fazer uma classificação com 4 times... usei 4 labels de pontos....

lbl_ptos_time1

lbl_ptos_time2

lbl_ptos_time3

lbl_ptos_time4

como verificar qual label e maior?

eu tentei fazer com if mais não consegui fazer todos.... to meio confusso aki...

espero ter me expressado direito =]

se alguém me entendeu, e souber me ajudar...

Obrigado

Felipe

ps:Claudio desculpe usar o seu tópico...grato.

O jeito mais simples é jogar para uma matriz e ordenar somente por uma das "colunas". No exemplo abaixo eu fiz isso, e guardo a pontuação na primeira "coluna" e o nome na segunda:

var v : array[0..3, 0..1] of string;
    i, j : integer;
    aux1, aux2 : string;

begin
  v[0, 0] := '4';
  v[0, 1] := 'Time1';

  v[1, 0] := '2';
  v[1, 1] := 'Time2';

  v[2, 0] := '1';
  v[2, 1] := 'Time3';

  v[3, 0] := '3';
  v[3, 1] := 'Time4';

  for i:=0 to 3 do
    for j:=0 to 3 do
      if strtoint(v[i, 0])>strtoint(v[j, 0]) then
      begin
        aux1 := v[i, 0];
        aux2 := v[i, 1];
        v[i, 0] := v[j, 0];
        v[i, 1] := v[j, 1];
        v[j, 0] := aux1;
        v[j, 1] := aux2;
      end;

  for i:=0 to 3 do
    showmessage(inttostr(i+1) + 'º Lugar: ' + v[i, 1] + ' com ' + v[i, 0] + ' pontos!');

end;

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

isso mesmo, muito Obrigao Graymalkin,

não querendo abusar mais já abusando, você saberia um tutorial bom, ou uma apostila boa para um iniciante?

ps: pra passa para um labal eu fiz assim

    lbl_time_1.caption := inttostr(i-2) + 'º Lugar: ' + v[i-3, 1] + ' com ' + v[i-3, 0] + ' pontos!';

    lbl_time_2.caption := inttostr(i-1) + 'º Lugar: ' + v[i-2, 1] + ' com ' + v[i-2, 0] + ' pontos!';

    lbl_time_3.caption := inttostr(i)  + 'º Lugar: ' + v[i-1, 1] + ' com ' + v[i-1, 0] + ' pontos!';

    lbl_time_4.caption := inttostr(i+1) + 'º Lugar: ' + v[i, 1]  + ' com ' + v[i, 0]  + ' pontos!'

ta certo?

Desculpe o abusivo..

Muito grato

Felipe

Link para o comentário
Compartilhar em outros sites

  • 0

isso mesmo, muito Obrigao Graymalkin,

smile.gif

não querendo abusar mais já abusando, você saberia um tutorial bom, ou uma apostila boa para um iniciante?

Infelizmente não sei de alguma apostila para iniciantes em Delphi. Todavia, o que você precisar, poste aqui no fórum que a gente tenta ajudar. wink.gif

ps: pra passa para um labal eu fiz assim

    lbl_time_1.caption := inttostr(i-2) + 'º Lugar: ' + v[i-3, 1] + ' com ' + v[i-3, 0] + ' pontos!';
    lbl_time_2.caption := inttostr(i-1) + 'º Lugar: ' + v[i-2, 1] + ' com ' + v[i-2, 0] + ' pontos!';
    lbl_time_3.caption := inttostr(i)   + 'º Lugar: ' + v[i-1, 1] + ' com ' + v[i-1, 0] + ' pontos!';
    lbl_time_4.caption := inttostr(i+1) + 'º Lugar: ' + v[i, 1]   + ' com ' + v[i, 0]   + ' pontos!'

ta certo?

Em termos de programação é meio vago definir o "certo" e o "errado" (falo no sentido de algo que esteja realizando exatamente o esperado), uma vez que existem várias maneiras de se fazer a mesma coisa. E essa sua é uma delas.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde Graymalkin, tudo bem... esse codigo que você colovou para que os times apareçam nos labels, o ultimo time aparece com um numero grande e não o titme sorteado, já procurei o erro e não consegui achar, você pode me dar uma ajuda. obrigado.

Vou colocar todo o codigo do controle.

var times : array[0..7] of integer;

i, qt, n, total : integer;

achou : boolean;

[begin

randomize;

qt := 0;

i := 0;

for i:=low(times) to high(times) do

times := -1;

while qt<=high(times) do

begin

n := random(high(times)+1)+1;

achou := false;

for i:=low(times) to high(times) do

if times=n then

achou := true;

if not achou then

begin

times[qt] := n;

qt := qt+1;

end;

end;

total := trunc((high(times)-1)/2);

for i:=0 to total do

begin

// showmessage('Time ' + inttostr(times) + ' : Time ' + inttostr(times[total+i+1]));

end;

begin

label1.caption := ('Time ' + inttostr(times) + ' x Time ' + inttostr(times[total+i-5]));

label2.caption := ('Time ' + inttostr(times[i+1]) + ' x Time ' + inttostr(times[total+i-6]));

label3.caption := ('Time ' + inttostr(times[i+2]) + ' x Time ' + inttostr(times[total+i-7]));

label4.caption := ('Time ' + inttostr(times[i+3]) + ' x Time ' + inttostr(times[total+i-8]));

end;

end;]

Desde já agradeço sua atenção.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite Graymalkin, tudo bem?? tenho mais uma pergunta para você. desculpe se estou sendo chato -rs - mas... vamos la...

já tentei de diversas forma para jogar o valor de uma show message no capiton de um label, so que não consegui, você pode me ajudar a fazer esse "proeza" - rsrs.

O que quero fazer é o seguinte, pegar o resultado de uma Showmessage e jogar no caption de um Label...

você pode me ajudar a resolver isso???

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Graymalkin, tudo bem?? posso te pedir para você corrigir para mim esse código?? eu to iniciando mesmo na carreira, peguei isso apenas com teste de aprendizado... você tem como descobrir onde eu estou errando, não consigo ver meu erro, peço sua ajuda para isso.

Obrigado.

A showmessge apresenta uma mensagem, eu quero pegar essa mensagem que aparece na caixa de diálogo da showmessage e colocar no caption de um label, mas... se a messagenbox tem como fezer isso também?? ou ambas não tem como fazer isso???

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
A showmessge apresenta uma mensagem, eu quero pegar essa mensagem que aparece na caixa de diálogo da showmessage e colocar no caption de um label, mas... se a messagenbox tem como fezer isso também?? ou ambas não tem como fazer isso???

A ShowMessage() mostra uma mensagem que *você* informa para ela. Então, é só você passar a mesma mensagem para a Caption de uma label:

var s : string;
begin
    s := 'Isto é um teste';

    Label1.Caption := s;
    ShowMessage(s);
end;

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...