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