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

Fernando Oliveira fernandocorrea em gmail.com
Terça Julho 1 12:15:34 PDT 2008


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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080701/311b60d7/attachment-0001.html>


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