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 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<br>
<br><div class="gmail_quote">2008/7/1 Gabriel Vieira <<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@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;">
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>
<div class="Ih2E3d">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>
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>
</div>my@t=("Atlético MG","Atlético PR","Botafogo");<br>
<div class="Ih2E3d">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>
</div>for(0..$#a+$#b){<br>
<div class="Ih2E3d">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>
</div>2008/7/1 Fernando Oliveira <<a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>>:<br>
<div><div></div><div class="Wj3C7c">> Tipo, eu não sei nada de futebol, mas me diz, como fica se tiver 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 código.<br>
>> Como sei que o Fernando vai fazer isso em 30 caracteres, fica só 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>
>> 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 rodadas<br>
>> de um campeonato.<br>
>><br>
>> Me mostrou o seguinte link<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>
</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>