Newsgroup: it.comp.lang.visual-basic
Titolo: generazione accoppiamenti squadre

ragazzi mi sto imbattendo nella generazione automatica di un calendario di
calcio 
mi spiego meglio: 
date tot squadre devo generare i possibili incontri e suddivederli per
giornata tenendo conto che 
- una squadra non può giocare due o più volte nella stessa giornata 
- se il numero di squadre è dispari devo considerare che ogni giornata una
squadra deve riposare 
esempio: 
ho 5 squadre ( 1 , 2 , 3 , 4 , 5 ) 
1° giornata 
1 vs 2 
3 vs 4 
5 riposa 
2° giornata 
1 vs 3 
2 vs 5 
4 riposa 
3° giornata 
1 vs 5 
2 vs 4 
3 riposa 
4° giornata 
1 vs 4 
3 vs 5 
2 riposa 
5° giornata 
2 vs 3 
4 vs 5 
1 riposa 
--- 
avete qualche idea?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

help me
ilmagowalter ha scritto:


 giornata una squadra deve riposare
    Io ho trovato cercando su google ;-)
    Tuttavia, visto che non trovo il link, ti scrivo qualche riga di
codice...
    Innanzitutto è meglio stabilire che nel caso di numero di squadre
(NumSquadre) dispari, si aggiunge una squadra fittizia per portarsi al caso
NumSquadre pari, che è più semplice. In seguito ti basterà considerare come
turno di riposo per la squadra X la sfida tra una squadra X e la squadra
fittizia.
    Supponiamo di avere le squadre numerate da 1 a NumSquadre. Studia questo
pezzetto di codice:
     Dim i As Integer
     Dim j As Integer
     Dim s As String
     Dim triangolo() As Byte
     ' costruisco il triangolo
     ReDim triangolo(1 To numSquadre - 1, 1 To numSquadre - 1)
     For i = 1 To numSquadre - 1 'righe
          For j = 1 To numSquadre - 1 ' colonne
               If j <= i Then
                    'triangolo(i, j) = 1
                    Select Case i
                         Case 1
                               triangolo(1, 1) = 1
                         Case numSquadre - 1
                               triangolo(i, j) = Successivo(i + 2 * j - 2,
7)
                         Case Else
                               triangolo(i, j) = Successivo(i + j - 1, 7)
                    End Select
                    cn.Execute "INSERT INTO Calendario (Turno, IdSquadra1,
IdSquadra2) " & _
                              "VALUES (" & triangolo(i, j) & ", " & i + 1 &
", " & j & ")"
               Else
                    triangolo(i, j) = 0
               End If
          Next j
     Next i
    In questo caso inserisco gli accoppiamenti in una tabella, ma non è
difficile estrapolare dal codice l'algoritmo di generazione e adattarlo ai
tuoi scopi. Per la trattazione teorica (che ti consiglio vivamente di
cercare, e che non ho assolutamente il tempo di fornirti) guarda su google,
la trovi di sicuro.
    Ciao
        Giovanni
-- 
=============================================
web:      
http://www.zangrossi.137.it
=============================================

 codice...
    Ovviamente ho trovato un link proprio appena dopo aver postato... ;-)
basta cercare "generazione calendario squadre" su google / gruppi.
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&threadm=9d7i9j%24h0ga3%241%40ID-49224.news.dfncis.de&rnum=4&prev=/groups%3Fhl%3Dit%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26q%3Dgenerazione%2Bsquadre
Ciao
    Giovanni

 di calcio
Stavo per riscrivere il semplicissimo algoritmo di generazione del
calendario, quando ho visto che Giovanni Zangrossi ha già segnalato un
thread simile.
Aggiungo solo una considerazione. Per gestire i riposi, basta aggiungere una
squadra X fittizia. Chi gioca con X riposa.
--
Ciao, Silv:o)

         Giovanni
scusami ma non sono riuscito a capirlo
non sono molto esperto
intanto che tipo di variabile è byte
e poi potresti spiegarmicome funziona questo codice?
