[Rio-pm] Golf: Criando rodadas de um campeonato

Fernando Oliveira fernandocorrea em gmail.com
Terça Julho 1 11:17:26 PDT 2008


Na verdade, eu acho q tá certo... seria assim o ida e volta?

2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:

> Agora q eu acho  q entendí!!! aquele codigo ta totalmente errado!!!
>
>
> 2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:
>
>> Eu não sei se entendí muito bem não, mas seria algo assim?
>>
>> perl -e '@a=@ARGV;for$r(1..$#a){push em a,shift em a;print$/,$r,"a
>> rodada:",$/x3;printf"%-15s x %15s$/",$ARGV[$_],$a[$_]for 0..($#a/2)}'
>> "Atltico MG" "Atltico PR" Botafogo Coritiba Figueirense Flamengo Fluminense
>> Goias Gremio Internacional Ipatinga Nautico Palmeiras Portuguesa "Sao Paulo"
>> Sport Vasco Vitoria
>>
>>
>> 2008/7/1 Gabriel Vieira <gabriel.vieira em gmail.com>:
>>
>>> Ok,
>>>
>>> se tiver impar cada time fica fora 1 rodada (nao tem par para ele),
>>> dai todos jogam entre si e o mesmo número de partidas.
>>>
>>> Jogos de ida e volta:
>>> - Cada jogo há um mandante (o time que joga em casa e o visitante).
>>> - ex.: Cruzeiro e Vasco jogam em MG, logo Cruzeiro é o Mandante.
>>> - O Mandante é determinado pelo 1o time do confronto (Flamengo e
>>> Vitória - Flamengo é Mandante)
>>> - Logo, jogos de ida e volta seria 1 jogo com o time A mandante e B
>>> visitante, e outro ao contrário.
>>>
>>>
>>> No código, há 20 times e 3 times, só escolher :)
>>> ---------------------->8----------------------
>>> my($c,$d,$i);
>>> format Rodada =
>>>
>>>
>>> ^##@| @<<<<<<
>>> $i,"a","Rodada"
>>>
>>> .
>>> format Jogos =
>>> ^<<<<<<<<<<<<  @|  @>>>>>>>>>>>>
>>> $c,"x",$d
>>> .
>>> my em t=("Atlético MG","Atlético
>>>
>>> PR","Botafogo","Coritiba","Cruzeiro","Figueirense","Flamengo","Fluminense","Goiás","Grêmio","Internacional","Ipatinga","Náutico","Palmeiras","Portuguesa","Santos","São
>>> Paulo","Sport","Vasco","Vitória");
>>> my em t=("Atlético MG","Atlético PR","Botafogo");
>>> my$j=($#t+1)/2;
>>> my em a=@t[0..$j-1];
>>> my em b=reverse em t[$j..$#t];
>>> push(@a,"")if$j=~/\./;
>>> for(0..$#a+$#b){
>>> i(((++$i/2)=~/\./?(\@b,\@a):(\@a,\@b)));
>>> @a=(shift em a,shift em b, em a);
>>> push(@b,pop em a);
>>> }
>>> sub i{
>>> $~='Rodada';
>>> write;
>>> my$i=-1;
>>> $~='Jogos';
>>> for(@{$_[0]}){
>>> $c=@{$_[0]}[++$i];
>>> $d=@{$_[1]}[$i];
>>> write if $c and $d;
>>> }
>>> }
>>> ----------------------8<----------------------
>>>
>>>
>>> 2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:
>>> > Tipo, eu não sei nada de futebol, mas me diz, como fica se tiver numero
>>> > impar?
>>> > E como é esse negocio de jogo ida e volta?
>>> >
>>> > 2008/7/1 Gabriel Vieira <gabriel.vieira em gmail.com>:
>>> >>
>>> >> Então,
>>> >>
>>> >> só fiz mudar nomes de variáveis a algumas funções pra diminuir o
>>> código.
>>> >> Como sei que o Fernando vai fazer isso em 30 caracteres, fica só de
>>> >> tacada inicial :P
>>> >>
>>> >> ----------------------8<----------------------
>>> >> my($c,$d,$i);
>>> >> format Rodada =
>>> >>
>>> >>
>>> >> ^##@| @<<<<<<
>>> >> $i,"a","Rodada"
>>> >>
>>> >> .
>>> >> format Jogos =
>>> >> ^<<<<<<<<<<<<  @|  @>>>>>>>>>>>>
>>> >> $c,"x",$d
>>> >> .
>>> >> my em t=("Atlético MG","Atlético
>>> >>
>>> >>
>>> PR","Botafogo","Coritiba","Cruzeiro","Figueirense","Flamengo","Fluminense","Goiás","Grêmio","Internacional","Ipatinga","Náutico","Palmeiras","Portuguesa","Santos","São
>>> >> Paulo","Sport","Vasco","Vitória");
>>> >> my$j=($#t+1)/2;
>>> >> my em a=@t[0..$j-1];
>>> >> my em b=reverse em t[$j..$#t];
>>> >> push(@a,"")if$j=~/\./;
>>> >> for(0..$#t-1){
>>> >> i(((++$i/2)=~/\./?(\@b,\@a):(\@a,\@b)));
>>> >> @a=(shift em a,shift em b, em a);
>>> >> push(@b,pop em a);
>>> >> }
>>> >> sub i{
>>> >> $~='Rodada';
>>> >> write;
>>> >> my$i=-1;
>>> >> $~='Jogos';
>>> >> for(@{$_[0]}){
>>> >> $c=@{$_[0]}[++$i];
>>> >> $d=@{$_[1]}[$i];
>>> >> write if $c and $d;
>>> >> }
>>> >> }
>>> >> ---------------------->8----------------------
>>> >>
>>> >> Abraços,
>>> >>
>>> >> ---------- Forwarded message ----------
>>> >> From: Gabriel Vieira <gabriel.vieira em gmail.com>
>>> >> Date: 2008/7/1
>>> >> Subject: Golf: Criando rodadas de um campeonato
>>> >> To: Perl Mongers Rio de Janeiro <rio-pm em pm.org>
>>> >>
>>> >>
>>> >> Opa!
>>> >>
>>> >> Um colega me veio pedindo ajuda em um código para elaborar as rodadas
>>> >> de um campeonato.
>>> >>
>>> >> Me mostrou o seguinte link
>>> >>
>>> >> (
>>> http://pt.wikipedia.org/wiki/Torneio#Algoritmo_para_marca.C3.A7.C3.A3o_de_jogos
>>> ).
>>> >>
>>> >> Entreguei, então pensei num golfe ;)
>>> >>
>>> >> Seria um programa que a partir de uma lista @times organiza um
>>> >> campeonato com 1 jogo apenas entre as mesmas equipes.
>>> >>
>>> >> Ou caso queiram, podemos fazer um jogo de ida e outro de volta.
>>> >>
>>> >> Só para ilustração:
>>> >>
>>> >> -----------------8<-----------------
>>> >> my @times = (   "Atlético MG",
>>> >>               "Botafogo",
>>> >>               "Cruzeiro",
>>> >>               "Flamengo",
>>> >>               "Fluminense",
>>> >>               "Ipatinga",
>>> >>               "Palmeiras",
>>> >>               "São Paulo",
>>> >>               "Vasco",
>>> >>               "Vitória",
>>> >> );
>>> >> ----------------->8-----------------
>>> >>
>>> >> Exemplo:
>>> >>
>>> >> -----------------8<-----------------
>>> >> my @times = (   "Atlético MG",
>>> >>               "Botafogo",
>>> >>               "Cruzeiro",
>>> >>               "Flamengo",
>>> >> );
>>> >> ----------------->8-----------------
>>> >>
>>> >>
>>> >> Saída:
>>> >> -----------------8<-----------------
>>> >>  1a  Rodada
>>> >>
>>> >> Flamengo        x      Atlético MG
>>> >> Cruzeiro        x         Botafogo
>>> >>
>>> >>
>>> >>  2a  Rodada
>>> >>
>>> >> Atlético MG     x         Cruzeiro
>>> >> Flamengo        x         Botafogo
>>> >>
>>> >>
>>> >>  3a  Rodada
>>> >>
>>> >> Botafogo        x      Atlético MG
>>> >> Flamengo        x         Cruzeiro
>>> >> ----------------->8-----------------
>>> >>
>>> >> Deu pra entender?
>>> >>
>>> >> Abraços!
>>> >>
>>> >> --
>>> >> Gabriel Vieira
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Gabriel Vieira
>>> >> _______________________________________________
>>> >> Rio-pm mailing list
>>> >> Rio-pm em pm.org
>>> >> http://mail.pm.org/mailman/listinfo/rio-pm
>>> >
>>> >
>>> >
>>> > --
>>> > Just another Perl Hacker,
>>> > Fernando (SmokeMachine)
>>> > http://perl-e.org
>>> > _______________________________________________
>>> > Rio-pm mailing list
>>> > Rio-pm em pm.org
>>> > http://mail.pm.org/mailman/listinfo/rio-pm
>>> >
>>>
>>>
>>>
>>> --
>>> Gabriel Vieira
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>
>>
>>
>> --
>> Just another Perl Hacker,
>> Fernando (SmokeMachine)
>> http://perl-e.org
>>
>
>
>
> --
> Just another Perl Hacker,
> Fernando (SmokeMachine)
> http://perl-e.org
>



-- 
Just another Perl Hacker,
Fernando (SmokeMachine)
http://perl-e.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080701/221b0b55/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm