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

Fernando Oliveira fernandocorrea em gmail.com
Terça Julho 1 10:06:09 PDT 2008


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


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