Lógica

4 respostas
D

Pessoal,

alguém pode me ajudar com a lógica de uma ordenação?
negócio é o seguinte:

tenho esse metodo aki public void teste(int tamanho) { ArrayList lista= new ArrayList(); for (int i =0; i<tamanho;i++){ for (int j =0; j<tamanho;j++){ if(i==j){ if(i==tamanho-1 && j==tamanho-1){ break; } } else{ lista.add(i+"X"+j); } } } total = Math.pow(tamanho,2)-tamanho; rodada = tamanho/2; for (int i =0; i<(total);i++){ JOptionPane.showMessageDialog(null,lista.get(i)); } }
ele adiciona na lista os valores de uma tabela nxn(mesmo numero de linhas e colunas)
e cria assim na lista, uma lista de jogos entre cada valor(que seriam times). depois disso, preciso criar as rodadas, onde uma rodada vai ter n/2 jogos e o número de rodadas será n-1(somente o turno). O meu problema começa agora. Preciso encontrar uma lógica que atenda a qualquer valor de times pares para montar a rodada. Assim: sendo 4 times
0x1 0x2 0x3
2x3 1x3 1x2

mas essa solução teria q funcionar para qualquer valor n (par)
alguem pode me dar uma luz no fim do túnel? Alguma sugestão?

valew

4 Respostas

F

afinal, vc quer dividir sua tabela por quantidade de jogos (tamanho -1) ou pelo jogo “impossível” de nXn (onde vc coloca “-”) ???

D

A tabela eu soh montei para sortear os jogos e coloca-los na lista de jogos como um time não pode jogar contra ele mesmo eu coloquei esse “-” e com essa condição ele não eh adicionado na lista a tabela fica assim

0 1 2 3 0 - 1 2 3 1 0 - 2 3 2 0 1 - 3 3 0 1 2 - dessa forma, a lista recebe (0x1), (0x2), (0x3),(1x0),(1x2),(1x3),(2x0),(2x1),(2x3),(3x0),(3x1) e (3x2);
agora tenho que sortear esses jogos de modo que a rodada vai ficar com 3 jogos porque um time não pode jogar com outro time pq jah esta jogando nessa rodada. Então as rodadas ficariam como citei no primeiro post.
soh que assim com 4 times eh tranquilo fazer, o problema acontece qndo for uma tabela com 10, 12,…,20 times
editei o código do primeiro post pq não havia necessidade de inserir na lista os “-”

D

up, eu sei q eh foda mas ninguem aih pode dar uma forcinha?

F

ainda tô tentando… não vou desistir, só que tá faltando um pouco de tempo…

Criado 9 de junho de 2005
Ultima resposta 13 de jun. de 2005
Respostas 4
Participantes 2