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

Blabos de Blebe blabos em gmail.com
Terça Julho 1 13:22:20 PDT 2008


Na época de futebol de botão eu fazia isso na mão...

2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:
> Quem dá menos?!
>
> 2008/7/1 Márcio Vitor <cromo.jml em gmail.com>:
>>
>> Sinistro! Aqui funciona, parabéns Fernando será que alguém abaixa ?
>>
>> Márcio Vitor
>>
>> 2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:
>> > Pô... como fica mais facil qdo se deixa de preguiça e se lê a wiki!!!
>> >
>> > minha tacada:
>> >
>> > perl -e '@a=@ARGV;for(1..2*@a-2*!(@a%2)){print$/,$_,"a
>> > Rodada:",$/x3;printf"%-15sx%15s$/", em a[$_, -$_-1] for 0..$#a/2;@a[1..$#a]
>> > =
>> > @a[2..$#a,1]}' "Atltico MG" "Atltico PR" Botafogo Coritiba Figueirense
>> > Flamengo Fluminense Goias Gremio Internacional Ipatinga Nautico
>> > Palmeiras
>> > Portuguesa "Sao Paulo" Sport Vasco Vitoria
>> >
>> > (ignorando parada de em casa ou fora de casa...)
>> >
>> > 2008/7/1 Fernando Oliveira <fernandocorrea em gmail.com>:
>> >>
>> >> 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
>> >
>> >
>> > --
>> > 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
>> >
>> _______________________________________________
>> 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
>


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