CAMPEONATO EM VB6

ADEMIRJOAO 16/03/2011 16:13:39
#368154
Olá amigos do VBMANIA, estou tentando desenvolver um formulario para criar automaticamente tabelas de campeonatos de Futebol, mas não sei como fazer para o sistema elaborar os confrontos. A minha ideia é informar ao sistema o nome dos times e ele criar uma tabela a partir desta informação, Por ex:

a x b
c x d
---------

d x a
b x c
---------

d x b
a x c

me ajudem please...

KERPLUNK 16/03/2011 16:22:43
#368158
Crie uma tabela com os times(simples, código e descrição), e uma para as partidas, com campos indicando os times que vão jogar, onde vc vai colocar os códigos dos times, também campos para o resultado da partida(quantos gols faz o primeiro time e quantos fez o segundo), outro campo que vai ter o código do time vencedor ou null caso seja empate
SACOFRITO 16/03/2011 16:28:35
#368161
Interessante o tópico, pois eu estive pensando em um programinha para Torneio de Tenis de Mesa que jogo representando minha cidade. Acho que seguiria o mesmo raciocinio apenas com a diferença de gols para pontos em cada set disputado. Mas com uma lista qualquer para mostrar todos os set's disputados.

Alguem tem alguma idéia para gerar automaticamente o cruzamento de jogos, como se fosse um sorteio de jogos na segunda fase. Cruza sempre o primeiro de uma chave, com o segundo de outra. Para sortear e cruzar os jogadores voces tem alguma idéia?
KERPLUNK 16/03/2011 16:52:13
#368173
Primeiro crie uma outra tabela que vai ter duas colunas, uma com o código da chave e outra com o jogador/time. Assim, vc vai saber em que chave cada jogador/time está. Com isso pode fazer os sorteios que quiser.
ADEMIRJOAO 17/03/2011 08:32:39
#368227
Então... Já criei todas as tabelas e as telas de cadastro (times, jogos, etc.), agora eu quero desenvolver uma tela onde possa lançar o nome dos times e o programa faça os confrontos entre eles como no exemplo abaixo:

Times: a, b, c, d

1° Rodada
a x b
c x d
---------

2° Rodada
d x a
b x c
---------

3° Rodada
d x b
a x c

Tentei fazer um loop mas não deu certo, pois não sei em que basear este comando para que realize-se os confrontos sem se repetir.
LLAIA 17/03/2011 12:52:25
#368267
Resposta escolhida
Olha, eu não sei usar muito bem as funções aleatórias. Não sei se elas dão algum suporte para sorteios sem reposição. Neste exemplo, tive que criar uma função que verifica no Array a ocorrência do valor sorteado. Se não ocorre, insiro no Array, se não, sorteio novamente. Rode aí e adapte conforme sua necessidade:

1 Form e 1 botão para rodar o exemplo.


Function FoiSorteado(ByRef v As Variant, ByVal Valor As String) As Boolean

Dim i As Byte

For i = 0 To UBound(v)
If v(i) = Valor Then FoiSorteado = True: Exit Function
Next

End Function

Private Sub Command1_Click()

Const iTeto As Byte = 10
Dim i As Byte
Dim v(0 To iTeto) As String
Dim iValor As Byte
Dim iTotal As Byte

While iTotal < iTeto

Randomize iTotal
iValor = Int(((iTeto) * Rnd()) + 1)

If Not FoiSorteado(v, iValor) Then
v(iTotal) = iValor
iTotal = iTotal + 1
End If

Wend


[ô]lendo o vetor
Dim sMsg As String
For i = 0 To iTeto - 1
sMsg = sMsg & v(i) & [Ô],[Ô]
Next

MsgBox sMsg

End Sub
FININHO 18/03/2011 03:29:43
#368353
Com o uso de 2 comandos FOR aninhados você elabora os confrontos sem repetição. A parte complicada vai ser coloca-los na ordem dentro das rodadas.

Private Sub Command1_Click()
Dim times(1 To 4) As String
times(1) = [Ô]a[Ô]
times(2) = [Ô]b[Ô]
times(3) = [Ô]c[Ô]
times(4) = [Ô]d[Ô]

For i = 1 To UBound(times) - 1
For j = i + 1 To UBound(times)
List1.AddItem times(i) & [Ô] x [Ô] & times(j)
Next j
Next i
FEDERHEN 18/03/2011 09:18:50
#368380
é mais rápido e fácil montar uma solução com planilha eletrônica, do que desenvolver um projeto em VB ou VBA.
Quantos campeonatos você ou seu cliente vão organizar, para compensar o trabalho de desenvolver um software? São questões que devem ser levadas em conta.

ADEMIRJOAO 18/03/2011 10:23:02
#368398
Caro Federhen, já tenho algumas planilhas eletronicas e inclusive as uso nos campeonatos de futebol de mesa que faço em minha casa com alguns amigos. Também já possuo um BD com front end em VB6 que uso para armazenar os campeonatos realizados. No intuito de [Ô]juntar[Ô] tudo em um só aplicativo, é que estou tentando montar este novo form. Fico agradecido pela dica do amigo e feliz por meu tópico chamar a vsa. atenção e de todos que estão visitando-o. Assim que finalizar este projeto, tenho a intenção de posta-lo aqui no VBMANIA para que possa ajudar outros colegas desenvolvedores.


Tópico encerrado , respostas não são mais permitidas