Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alex_ps

Trabalhando com o resultado de um Select

Recommended Posts

Senhores,

 

Há dois dias tivemos um tópico que perguntava sobre a criação de uma tabela de um campeonato. Do tipo todos contra todos.

Infelizmente não foi a frente pois acho que ele podia ensinar um bocado a novatos como eu http://forum.imasters.com.br/public/style_emoticons/default/blush.gif a lógica da programação.

Mas tudo bem, eu fiquei quebrando a cabeça, e tentei diversas coisas.

Me surgiram algumas dúvidas que eu queria pedir para vocês darem uma olhada:

 

Seguinte, se o campeonato tiver um número de 10 pessoas (isto não importa pois posso usar RecordCount), listar as pessoas é o primeiro passo.

Em seguida preciso fazer os jogos, ai surge a primeira dúvida, como eu faço para nomear e ou chamar os ítens anteriores ao ponto final ou inicial, de acordo com a escolha.

 

Tentei fazer um loop for i = 10, mas eu vou e volto e ele lista o primeiro, e para jogar com o primeiro continua listando o primeiro, 10 vezes. Usei Rs("times")

 

Tentei usar o RS("ID"), aí piorou pois se eu tiver o resultado do select em ID, como eu relaciono ao RS("times"), se não no momento do select.

 

Também tentei usar este tópico mas deu um nó e pulei fora.

 

Ao passar por esta etapa, eu poderia repetir a fórmula e fazer isto mais 9 vezes, para listar a possibilidade de todos jogarem contra todos, mas creio que um script externo também resolveria este problema. Tipo um loop fora deste primeiro loop, ou uma função...

 

Por fim, depois de todos os jogos escolhidos, a dúvida é: eu preciso fazer tudo isto em uma página só? Creio que sim, se não, terei que jogar em BD e depois recuperar tudo, o que não seria problema, apenas não sei se a linha de pensamento mais acertada seria esta.

 

As rodadas montadas aleatoriamente não seria problema.

 

Tem como dar uma força?

 

Valeu!

 

Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou gerar as possiveis rodadas primeiro??pode ser uma forma...use a ideia do kdu no outro topico 1º contra os demais o 2º contra os outros menos o 1º e assim por dianteacho que dois lações for fazem issodepois vem a criação da logica pra montar a rodada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario,O que eu tentei fazer foi gerar o loop para que o primeiro jogasse com o segundo, terceiro..., depois iria fazer o 2 jogando com o 3, 4, 5... (Iria montar 10 loops, já que não imagino uma forma de fazer um loop externo).Começa que eu não sei chamar o segundo, coisas como, o primeiro o ID=1, o segundo o ID=2, ou x=1 to 10... Mas como eu faço para dizer que cada um daqueles id's represente um time. Se não vai ficar um negócio assim 1 x 1, 1 x 2, 1 x 3, 1 x 4...Quando eu fiz com o nome do time, o loop deu Luis x Luis, Luis x Luis (10 vezes).E hoje pensando mais um pouco, creio que eu teria que mandar as partidas para um BD, não? Pois só assim terei como recuperá-las.Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser db ou em array como decidir armazenar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o loop para gerar seria algo comotimes = 10FOR I = 1 TO Times -1FOR J = I + 1 TO TimesResponse.write("Time " & I & "X" & " Time" & J)NEXTNEXT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz,Você já fez o looping de todos os jogos em uma só sacada! Gostei e para entender melhor o processo, eu dividi as etapas:

times = 10I = 1FOR J = I + 1 TO TimesResponse.write("Time " & I & " X " & " Time" & J &"<br>")NEXT

Entendi o que eu estava fazendo errado, eu estava usando 2 variáveis e não 3 como no seu exemplo.O legal, é que no seu exemplo, posso criar uma terceira, quarta, quinta instâncias, indefinidamente http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Mas, se não for pedir muito, como é que você trabalha com estas informações, ou melhor, como você envia uma a uma para um banco de dados. Só posso imaginar isto, para que eu possa depois recuperar as 18 rodadas de 5 jogos cada. É um looping de envio, ou todas de uma vez como algo do tipo check box selecionados.Bem, agradeço sua ajuda, já prestada.Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

envia uma a uma dento do loopno mesmo lugar onde manda escrever

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario,

 

Consegui enviar para o BD e está tudo correto.

 

O resto eu faço por aqui!

 

Valeu pela ajuda!

 

Alex_ps

De nada cara

 

Qualquer outro esclarecimento que precise pode postar pra galera do imasters

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois na logica acima, o 1º sempre seria o mandante e o infeliz do ultimo sempre o visitante hehehe

infeliz foi boa, ehehehbem o que o kdu disse é verdade mas pra gerar as rodadas você pode selecionar um jogo ao acaso marca que ele faz parte da primeira rodada e eliminao da lista ai você seleciona outro jogo ao acaso que não tenham nenhum dos dois times pegos no primeiro marca que faz parte da primeira rodada e eliminao da listaassim até completar a primeira rodadadepois vem a segunda que faz a mesma coisa marca e elimina até acabar os jogose se for dois turnos inverte os times apenas e pode usar a mesma sequencia de jogos...um upgrade seria fazerr com que os mandos sejam alternadostipo quem manda numa rodada visita na outramas se tratando de video game tanto faz que manda, eheheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, agora monta essa logica q eu quero ver se eh tao simples qto falar ela hehehe

 

flw!

mole mole...

 

ahuahuahauah...

 

ah se eu tivesse tempo como eu tenho preguiça... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kdu e Mario,

 

Quando pedi a ajuda de vocês, para mim o importante era entender o processo todo. E realmente ficou muito mais claro, obrigado!

Entendo a dificuldade de gerar as rodas!

É verdade, a não repetição é uma coisa difícil de ser feita, pelo menos no meu nível de conhecimento.

Isto porque ainda me perco em problemas de sintaxe, o que não ajuda muito.

Um exemplo disso é que utilizei um script que monta uma tabela, dispondo os jogos em 9 colunas. Cada coluna teria 5 jogos e pronto.

Pronto nada, começam os problemas já na segunda linha quando o Time 2 que já estava jogando com o Time 1 na primeira linha, aparece jogando com o Time 3. Eu já imaginava que isto deveria acontecer e para diminuir esta probabilidade, iria usar um script de seleção aleatória dos jogos.

Coloquei o script e parou tudo.

Um deles aparece o "movenext" e o outro o "next", e o "next" fica sempre sobrando.

Vou tentar ver se consigo fazer 2 selects, no primeiro eu faço a seleção aleatória, e no segundo eu monto as rodadas, sendo que no segundo coloco um "if" no meio.

O http://forum.imasters.com.br/public/style_emoticons/default/grin.gif o enrolado é que o "if" tem que rebolar pois ele tem que se comportar hora de um jeito hora de outro.

Isto porque os jogos são uma "coisa" só, ou seja x= (Time 1 x Time 2), e não x = (Time 1) x (Time 2), o que poderia facilitar o trabalho do "if", até para montagem do possível processo de mandante ou não do jogo, como vocês citaram.

Quanto ao desafio, hehehe quem dera...

Eu aprendendo a andar e vocês querendo um desafio 100 metros rasos, e cheio de barreiras. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Isto já é com vocês!

Vou continuar por aqui brigando com o next!

Valeu!

 

Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

a logica seria aquela que passei...como o kdu alertou não é tão trivial mas não é impossivel tb...mas ia ser bacana se alguem fizesse o codigo completo disso...e ai Alex_ps se habilita??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kdu,O problema não é nem topar desafios, ou não.Veja o meu caso.Estou certo que a melhor maneira de fazer a montagem dos jogos é separando 1 jogo em soma de duas variáveis.A meu ver isto facilitaria a comparação e impediria que o mesmo time 2 vezes na mesma jogada.Só... que eu não sei fazer!Se eu soubesse, os "ifs" de comparação e os loops, For Each, etc... toparia com muito gosto.Ao fazer, usaria o seguinte raciocínio:Utilizando 9 rodadas de 5 jogos cada:time(n)n=45jogos = 5rodadas = 9rodadas = 5 jogosvariável 1 = time (n)variável 2 = time (n)variável 1 <> variável 2jogo 1 = variável 1 x variável 2jogo 2 = variável 1 x variável 2 (desde que variável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2).jogo 3 = variável 1 x variável 2 (desde que váriável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2 and jogo 2 = variável 1 x variável 2).jogo 4 = variável 1 x variável 2 (desde que váriável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2 and <> jogo 2 = variável 1 x variável 2 and jogo 3 = variável 1 x variável 2).jogo 5 = variável 1 x variável 2 (desde que variável 1 ou variável 2<> de jogo 1 = variável 1 x variável 2 and <> jogo 2 = variável 1 x variável 2 and jogo 3 = variável 1 x variável 2 and <> jogo 4 = variável 1 x variável 2).em loop até rodadas = 5 jogosrepito este loop só que agora tenho cuidado de um time não jogar 2 vezes na 1 rodada e dos jogos não se repetirem com os jogos da primeira rodada.jogo 1 = variável 1 x variável 2 (desde que jogo 1 <> jogos (1 até 5 da 1 rodada)).jogo 2 = variável 1 x variável 2 (desde que variável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2) e (desde que jogo 1 <> jogos (1 até 5 da 1 rodada)).jogo 3 = variável 1 x variável 2 (desde que váriável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2 and jogo 2 = variável 1 x variável 2) e (desde que jogo 1 <> jogos (1 até 5 da 1 rodada)).jogo 4 = variável 1 x variável 2 (desde que váriável 1 ou variável 2 <> de jogo 1 = variável 1 x variável 2 and <> jogo 2 = variável 1 x variável 2 and jogo 3 = variável 1 x variável 2) e (desde que jogo 1 <> jogos (1 até 5 da 1 rodada)).jogo 5 = variável 1 x variável 2 (desde que variável 1 ou variável 2<> de jogo 1 = variável 1 x variável 2 and <> jogo 2 = variável 1 x variável 2 and jogo 3 = variável 1 x variável 2 and <> jogo 4 = variável 1 x variável 2) e (desde que jogo 1 <> jogos (1 até 5 da 1 rodada)).em loop até rodadas = 5 jogos, termina a segunda rodada.repito 9 vezes acrescentando ao fim de cada rodada a proibição dos jogos não poderem ser repetidos com os jogos das rodadas anteriores.Tem mais um detalhe, é importante dizer que variável 1 x variável 2 = variável 2 x variável 1, caso contrário entra naquela história de turno e returno.Se fosse turno e returno eu montaria o primeiro turno e depois para o segundo turno inverteria a posição das variáveis para jogo = variável 2 x variável 1, sem entretanto mexer nos times.Daria um pouco de trabalho, mas é o que eu faria se soubesse como.À propósito, não sei se listar os jogos como eu mesmo pedi ajuda no início do tópico, seria a solução. Creio que até atrapalha.Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.