• 0
Sign in to follow this  
ramon

Organizar 9 Rodadas

Question

To numa broca aqui

Não to conseguindo organizar uma rodada de jogos para colocar num form

Tipo tenho 10 nomes de clubes alocado numa matriz, porem não to conseguindo fazer um esquema para criar as rodadas

1 Gremio

2 Inter

3 São Paulo

4 Palmeiras

5 Corinthians

6 Bahia

7 Santos

8 Flamengo

9 Coritiba

10 Juventude

Cada time jogara 9 jogos

Teremos 5 rodadas

Resultando em 45 jogos

1x10

2x9

3x8

4x7

5x6

Bom minha duvida ta em como criar esta rodada? sad.gif

alguém tem uma ideia ou exemplo simples?

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Você quer que o programa gere os 45 jogos? Tipo: Grêmio x Corinthians, Bahia x Coritiba, etc. ?

Graymalkin

Share this post


Link to post
Share on other sites
  • 0

Quanto à simples rodada, ou seja uma, eu fiz assim:

Dim times(9) As String
Private Sub Form_click()
times(0) = "Gremio"
times(1) = "Inter"
times(2) = "São Paulo"
times(3) = "Palmeiras"
times(4) = "Corinthians"
times(5) = "Bahia"
times(6) = "Santos"
times(7) = "Flamengo"
times(8) = "Coritiba"
times(9) = "Juventude"
For i = 1 To 9
If i <> 9 Then
Print times(i) & " X " & times(i + 1)
Else
Print times(9) & " X " & times(0)
End If
Next i
End Sub

Só que cada time joga duas vezes... dry.gif

Share this post


Link to post
Share on other sites
  • 0

Resposta para a rodada única:

Dim times(9) As String
Private Sub Form_click()
times(0) = "Gremio"
times(1) = "Inter"
times(2) = "São Paulo"
times(3) = "Palmeiras"
times(4) = "Corinthians"
times(5) = "Bahia"
times(6) = "Santos"
times(7) = "Flamengo"
times(8) = "Coritiba"
times(9) = "Juventude"
For i = 0 To 4
If i = 0 Then
Print times(i) & " X " & times(9)
ElseIf i <> 0 Then
Print times(i) & " X " & times(9 - i)
End If
Next i
End Sub

Esse é um exemplo legal pra fazer o resto do campeonato, creio que voce possa repetir o código alterando a subtração no campo do adversário e caso surjam erros, é fácil corrigi-los. Se precisar de ajuda no do campeonato pode falar que eu vou fazer o possivel para ajudar. wink.gif

Abraços

Rodrigo

Share this post


Link to post
Share on other sites
  • 0

Você quer que o programa gere os 45 jogos? Tipo: Grêmio x Corinthians, Bahia x Coritiba, etc. ?

Graymalkin

Exatamente

Fiz um calendario onde eu quero que apareca somente os 9 jogos que o time vai jogar e não todos 45

Mas porem quero armazenar os 45 jogo em uma matriz

Tipo

escolho Gremio vai aparecer somente 9 jogos para este time

escolho Corinthians vai aparecer somente 9 jogos para este

Então ficaria uma matriz bidimensional

Calendario(9, 8)

Onde no 1 indice armazenaria os times e no segundo os adversarios

Porem surge a duvida de como fazer este sitema para organizar as rodadas de cada time

No calendario do gremio

Calendario(0, 1)

no indice 0 Gremio na segunda coluna Santos

então Gremio x Santos

Vou visualizar o calendario do Santos

calendario(4, 0)

Santos x Gremio

porem o jogo não confere pois no calendario do gremio esta Gremio x santos

gremio joga em casa

no calendario do santos esta santos x gremio

santos joga em casa

Teria que estar neste calendario o santo jogando fora

Ai que ta a minha duvida? sad.gif

Bom aproveitando isto então resolvi fazer turno e returno porem ai complicou mais ainda a minha cuca

Ai seria 90 jogos

18 rodadas

alguém bom em matematica poderia me ajudar?

Share this post


Link to post
Share on other sites
  • 0
Resposta para a rodada única:

Dim times(9) As String
Private Sub Form_click()
times(0) = "Gremio"
times(1) = "Inter"
times(2) = "São Paulo"
times(3) = "Palmeiras"
times(4) = "Corinthians"
times(5) = "Bahia"
times(6) = "Santos"
times(7) = "Flamengo"
times(8) = "Coritiba"
times(9) = "Juventude"
For i = 0 To 4
If i = 0 Then
Print times(i) & " X " & times(9)
ElseIf i <> 0 Then
Print times(i) & " X " & times(9 - i)
End If
Next i
End Sub

Esse é um exemplo legal pra fazer o resto do campeonato, creio que voce possa repetir o código alterando a subtração no campo do adversário e caso surjam erros, é fácil corrigi-los. Se precisar de ajuda no do campeonato pode falar que eu vou fazer o possivel para ajudar. wink.gif

Abraços

Rodrigo

Beleza aragorn13

Eu tava postando e você postou antes que eu postase biggrin.gif

Vou olhar o seu codigo, porem não sei se vai dar de uma olhada no meu tópico acima sad.gif

Share this post


Link to post
Share on other sites
  • 0

Ieeeeeeee até o Graymalkin respondeu antes biggrin.gif

Vou olhar agora, mas não sei se vai dar, terei que alterar algumas coisas biggrin.gif

pelo menos eu acho

Share this post


Link to post
Share on other sites
  • 0

Quando à uma matriz, com o indice dos times, sem probs, dá pra fazer, mas aí tem que botar uma opção pra selecionar time etc né? Quanto ao turno e returno, ai complica pra mim. dry.gif pois apesar deu só ter que inverter, o código ficaria enorme. É isso que voce quer?

Se voce não conseguir, posta aqui!

Deu certo usando o meu codigo?

Abraços

Share this post


Link to post
Share on other sites
  • 0

Sim aragorn13 seu código deu certo

mas Veja só pessoal

Resolvi diminuir os times para ficar menor

São 4 times cada um jogara com os 3

Private Sub Command1_Click()
Dim Times(10, 10) As String


'Calendario gremio
Times(0, 0) = "GREMIO"

Times(0, 1) = "juventude"
Times(0, 2) = "coritiba"
Times(0, 3) = "flamengo"

'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "juventude"
Times(1, 2) = "coritiba"
Times(1, 3) = "gremio"


'Calendario coritiba
Times(2, 0) = "CORITIBA"

Times(2, 1) = "flamengo"
Times(2, 2) = "gremio"
Times(2, 3) = "juventude"


'Calendario juventude
Times(3, 0) = "JUVENTUDE"

Times(3, 1) = "gremio"
Times(3, 2) = "flamengo"
Times(3, 3) = "coritiba"


For A = 0 To 3
   For B = 1 To 3
   Debug.Print Times(A, 0) + " X " + Times(A, B)

Next B
Debug.Print "****************"
Next A

End Sub
Este codigo resultara em
GREMIO X juventude
GREMIO X coritiba
GREMIO X flamengo
****************
FLAMENGO X juventude
FLAMENGO X coritiba
FLAMENGO X gremio
****************
CORITIBA X flamengo
CORITIBA X gremio
CORITIBA X juventude
****************
JUVENTUDE X gremio
JUVENTUDE X flamengo
JUVENTUDE X coritiba
****************

O calendario do flamengo tem ....1°jogo deles

FLAMENGO X juventude

Porem se você visualizar o calendari do juventude o 1° jogo dele será

JUVENTUDE X gremio

Ai que to quebrando a cabeca sad.gif

Eu to tentando organizar os jogos na matriz antes que eles aparecam?

E ai será que tem solução???

Aonde sera que eu to errando? wink.gif

Share this post


Link to post
Share on other sites
  • 0

'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "juventude"
Times(1, 2) = "coritiba"
Times(1, 3) = "gremio"
Troque por...
'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "coritiba"
Times(1, 2) = "flamengo"
Times(1, 3) = "gremio"

Acho que é isso...O erro está na organização dos jogos do flamengo.

Abraços

Share this post


Link to post
Share on other sites
  • 0

Mas no calendario do flamengo no 2° jogo

vai ficar

FLAMENGO x flamengo

tambem dara erro

Share this post


Link to post
Share on other sites
  • 0

Mas, os jogos não ocorrem ao mesmo tempo. Por isso, o primeiro jogo do Flamengo pode ser com o Grêmio, mas o primeiro jogo do Grêmio não precisa ser necessariamente com o Flamengo. Ou não?

Graymalkin

Share this post


Link to post
Share on other sites
  • 0

Falei errado ramon foi mal. sad.gif

Era isso:

'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "juventude"
Times(1, 2) = "coritiba"
Times(1, 3) = "gremio"
Troque por...
'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "coritiba"
Times(1, 2) = "juventude"
Times(1, 3) = "gremio"
No meu aqui ta dando o seguinte:
GREMIO X juventude GREMIO X coritiba GREMIO X flamengo *************************** FLAMENGO X coritiba FLAMENGO X juventude FLAMENGO X gremio *************************** CORITIBA X flamengo CORITIBA X gremio CORITIBA X juventude *************************** JUVENTUDE X gremio JUVENTUDE X flamengo JUVENTUDE X coritiba
É isso que voce quer né? o código ficou assim:
Private Sub Command1_Click()
Dim Times(10, 10) As String


'Calendario gremio
Times(0, 0) = "GREMIO"

Times(0, 1) = "juventude"
Times(0, 2) = "coritiba"
Times(0, 3) = "flamengo"

'Calendario flamengo
Times(1, 0) = "FLAMENGO"

Times(1, 1) = "coritiba"
Times(1, 2) = "juventude"
Times(1, 3) = "gremio"


'Calendario coritiba
Times(2, 0) = "CORITIBA"

Times(2, 1) = "flamengo"
Times(2, 2) = "gremio"
Times(2, 3) = "juventude"


'Calendario juventude
Times(3, 0) = "JUVENTUDE"

Times(3, 1) = "gremio"
Times(3, 2) = "flamengo"
Times(3, 3) = "coritiba"


For A = 0 To 3
  For B = 1 To 3
  Debug.Print Times(A, 0) + " X " + Times(A, B)

Next B
Debug.Print "****************"
Next A

End Sub

Abraços,

Rodrigo

Share this post


Link to post
Share on other sites
  • 0

Agora sim funcionou do jeito que eu queria biggrin.gif

Valeu aragorn13

Então eu devo estar errando na organização dos times. tongue.gif

Bom se funcionou com 4 times terá que funcionar com 10 times.

Agora eu vou procurar aonde que eu to errando no meu projeto que contem 10 times wink.gif

Brigadão aragorn13 cool.gif

Share this post


Link to post
Share on other sites
  • 0
Agora sim funcionou do jeito que eu queria biggrin.gif

Valeu aragorn13

Então eu devo estar errando na organização dos times. tongue.gif

Bom se funcionou com 4 times terá que funcionar com 10 times.

Agora eu vou procurar aonde que eu to errando no meu projeto que contem 10 times wink.gif

Brigadão aragorn13 cool.gif

De nada brother.

Abraços

Rodrigo

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this