PDA

View Full Version : ROMPICAPO.....


nickanonimo72
29-12-2005, 17:46
..dovrei creare il calendario dei gironi per un torneo a 24 giocatori...tipo SERIE A di calcio, tanto per intenderci, ma a 24 partecipanti.....
solo ANDATA...quindi 23 giornate di campionato con 12 partite per giornata.....

...basta uno script di poco conto o qualcosa di più complesso......??

...grazie in anticipo a chi potrà aiutarmi.....sono ormai giorni che non ne vengo a capo....

okay
29-12-2005, 20:23
..dovrei creare il calendario dei gironi per un torneo a 24 giocatori...tipo SERIE A di calcio, tanto per intenderci, ma a 24 partecipanti.....
solo ANDATA...quindi 23 giornate di campionato con 12 partite per giornata.....

...basta uno script di poco conto o qualcosa di più complesso......??

...grazie in anticipo a chi potrà aiutarmi.....sono ormai giorni che non ne vengo a capo....

Non dici in che linguaggio (ti faccio un esempio in vb) e dato che servono delle matrici un while oppure un for, farlo in altri linguaggi poi è semplice.

ti faccio uno pseudo code

Crei le matrici:
dim campionato(22,11,1) as string '23 giornate da 12 incontri tra 24 giocatori
dim giocatori(23), temp(23) as string '24 giocatori e una matrice temporanea
dim Errore, aa, bb as integer

'Assegni i nomi dei giocatori o li carichi da file testo come vuoi e sai fare in
'fondo sono solo 24 nomi quindi:
for i=0 to 23
giocatori(i)="giocatore" & trim(str(i))
temp(i)=giocatori(i)
next i

randomize timer

for i=0 to 22 ' giornate
for r=0 to 23:giocatori(r)=temp(r):next r 'ripristina giocatori
for j=0 to 11 'incontri per giornata
for k=0 to 1 'incontro singolo
1 a = Int((24 * Rnd) + 1)-1
if giocatori(a)="" then goto 1
if giocatori(a)<>"" then
campionato(i,j,k)=giocatori(a)
if k=1 then aa=i:bb=j:gosub ControllaSeIncontroDisputato
if Errore=1 then goto 1
giocatori(a)=""
endif
next k
next j

next i

... fai la stampa
end 'fine

ControllaSeIncontroDisputato:
Errore=0
for ii=0 to aa-1 'giornate
for jj=0 to bb-1 'incontri per giornata
if campionato(i,j,0)=campionato(ii,jj,0) or campionato(i,j,0)=campionato(ii,jj,1) or campionato(i,j,1)=campionato(ii,jj,0) or campionato(i,j,1)=campionato(ii,jj,1) then Errore=1:return
next jj
next ii
return


ecco + o meno dovrebbe essere così...


Edit: a rivederlo dico che non è pseudo code ma un'algoritmo.
Non l'ho testato...

nickanonimo72
29-12-2005, 20:38
okay
...io di programmazione ne capisco ben poco....per questo mi sono rivolto a questo forum....quindi non so dirti quale linguaggio vada meglio....
...non sapevo se bastavano poche righe di codice per risolvere il problema o servisse un programma più complesso.......
....ti ringrazio infinitamente del tempo perso a rispondermi e, se non è chiederti troppo, ti vorrei chiedere come faccio a "lanciare" questo codice.......

....ancora grazie 1000...........

ciao

Nick

kingv
29-12-2005, 20:56
ma ti serve l'algoritmo o ti basta il tabellone?

nel secondo caso:

Giornata 1 |1 24 |2 23 |3 22 |4 21 |5 20 |6 19 |7 18 |8 17 |9 16 |10 15 |11 14 |12 13
Giornata 2 |1 23 |22 24 |2 21 |3 20 |4 19 |5 18 |6 17 |7 16 |8 15 |9 14 |10 13 |11 12
Giornata 3 |1 22 |21 23 |20 24 |2 19 |3 18 |4 17 |5 16 |6 15 |7 14 |8 13 |9 12 |10 11
Giornata 4 |1 21 |20 22 |19 23 |18 24 |2 17 |3 16 |4 15 |5 14 |6 13 |7 12 |8 11 |9 10
Giornata 5 |1 20 |19 21 |18 22 |17 23 |16 24 |2 15 |3 14 |4 13 |5 12 |6 11 |7 10 |8 9
Giornata 6 |1 19 |18 20 |17 21 |16 22 |15 23 |14 24 |2 13 |3 12 |4 11 |5 10 |6 9 |7 8
Giornata 7 |1 18 |17 19 |16 20 |15 21 |14 22 |13 23 |12 24 |2 11 |3 10 |4 9 |5 8 |6 7
Giornata 8 |1 17 |16 18 |15 19 |14 20 |13 21 |12 22 |11 23 |10 24 |2 9 |3 8 |4 7 |5 6
Giornata 9 |1 16 |15 17 |14 18 |13 19 |12 20 |11 21 |10 22 |9 23 |8 24 |2 7 |3 6 |4 5
Giornata 10 |1 15 |14 16 |13 17 |12 18 |11 19 |10 20 |9 21 |8 22 |7 23 |6 24 |2 5 |3 4
Giornata 11 |1 14 |13 15 |12 16 |11 17 |10 18 |9 19 |8 20 |7 21 |6 22 |5 23 |4 24 |2 3
Giornata 12 |1 13 |12 14 |11 15 |10 16 |9 17 |8 18 |7 19 |6 20 |5 21 |4 22 |3 23 |2 24
Giornata 13 |1 12 |11 13 |10 14 |9 15 |8 16 |7 17 |6 18 |5 19 |4 20 |3 21 |2 22 |23 24
Giornata 14 |1 11 |10 12 |9 13 |8 14 |7 15 |6 16 |5 17 |4 18 |3 19 |2 20 |21 24 |22 23
Giornata 15 |1 10 |9 11 |8 12 |7 13 |6 14 |5 15 |4 16 |3 17 |2 18 |19 24 |20 23 |21 22
Giornata 16 |1 9 |8 10 |7 11 |6 12 |5 13 |4 14 |3 15 |2 16 |17 24 |18 23 |19 22 |20 21
Giornata 17 |1 8 |7 9 |6 10 |5 11 |4 12 |3 13 |2 14 |15 24 |16 23 |17 22 |18 21 |19 20
Giornata 18 |1 7 |6 8 |5 9 |4 10 |3 11 |2 12 |13 24 |14 23 |15 22 |16 21 |17 20 |18 19
Giornata 19 |1 6 |5 7 |4 8 |3 9 |2 10 |11 24 |12 23 |13 22 |14 21 |15 20 |16 19 |17 18
Giornata 20 |1 5 |4 6 |3 7 |2 8 |9 24 |10 23 |11 22 |12 21 |13 20 |14 19 |15 18 |16 17
Giornata 21 |1 4 |3 5 |2 6 |7 24 |8 23 |9 22 |10 21 |11 20 |12 19 |13 18 |14 17 |15 16
Giornata 22 |1 3 |2 4 |5 24 |6 23 |7 22 |8 21 |9 20 |10 19 |11 18 |12 17 |13 16 |14 15
Giornata 23 |1 2 |3 24 |4 23 |5 22 |6 21 |7 20 |8 19 |9 18 |10 17 |11 16 |12 15 |13 14

okay
29-12-2005, 20:59
okay
...io di programmazione ne capisco ben poco....per questo mi sono rivolto a questo forum....quindi non so dirti quale linguaggio vada meglio....
...non sapevo se bastavano poche righe di codice per risolvere il problema o servisse un programma più complesso.......
....ti ringrazio infinitamente del tempo perso a rispondermi e, se non è chiederti troppo, ti vorrei chiedere come faccio a "lanciare" questo codice.......

....ancora grazie 1000...........

ciao

Nick



Il linguaggio usato è per visual basic 6.0 quindi dovresti installare questo tool per windows98/xp va bene (poi dipende che OS usi).

Nel menu in alto a questo forum c'è il link PROGRAMMAZIONE scegli visual basic e leggilo un pò.

Quando sarai pronto a programmare ne riparliamo.

Se no devi scriverti il calendario con carta e penna, se ti serve subito fai prima in questo modo in fondo sono solo 23 giornate...

ciao

nickanonimo72
29-12-2005, 21:03
ma ti serve l'algoritmo o ti basta il tabellone?

nel secondo caso:

Giornata 1 |1 24 |2 23 |3 22 |4 21 |5 20 |6 19 |7 18 |8 17 |9 16 |10 15 |11 14 |12 13
Giornata 2 |1 23 |22 24 |2 21 |3 20 |4 19 |5 18 |6 17 |7 16 |8 15 |9 14 |10 13 |11 12
Giornata 3 |1 22 |21 23 |20 24 |2 19 |3 18 |4 17 |5 16 |6 15 |7 14 |8 13 |9 12 |10 11
Giornata 4 |1 21 |20 22 |19 23 |18 24 |2 17 |3 16 |4 15 |5 14 |6 13 |7 12 |8 11 |9 10
Giornata 5 |1 20 |19 21 |18 22 |17 23 |16 24 |2 15 |3 14 |4 13 |5 12 |6 11 |7 10 |8 9
Giornata 6 |1 19 |18 20 |17 21 |16 22 |15 23 |14 24 |2 13 |3 12 |4 11 |5 10 |6 9 |7 8
Giornata 7 |1 18 |17 19 |16 20 |15 21 |14 22 |13 23 |12 24 |2 11 |3 10 |4 9 |5 8 |6 7
Giornata 8 |1 17 |16 18 |15 19 |14 20 |13 21 |12 22 |11 23 |10 24 |2 9 |3 8 |4 7 |5 6
Giornata 9 |1 16 |15 17 |14 18 |13 19 |12 20 |11 21 |10 22 |9 23 |8 24 |2 7 |3 6 |4 5
Giornata 10 |1 15 |14 16 |13 17 |12 18 |11 19 |10 20 |9 21 |8 22 |7 23 |6 24 |2 5 |3 4
Giornata 11 |1 14 |13 15 |12 16 |11 17 |10 18 |9 19 |8 20 |7 21 |6 22 |5 23 |4 24 |2 3
Giornata 12 |1 13 |12 14 |11 15 |10 16 |9 17 |8 18 |7 19 |6 20 |5 21 |4 22 |3 23 |2 24
Giornata 13 |1 12 |11 13 |10 14 |9 15 |8 16 |7 17 |6 18 |5 19 |4 20 |3 21 |2 22 |23 24
Giornata 14 |1 11 |10 12 |9 13 |8 14 |7 15 |6 16 |5 17 |4 18 |3 19 |2 20 |21 24 |22 23
Giornata 15 |1 10 |9 11 |8 12 |7 13 |6 14 |5 15 |4 16 |3 17 |2 18 |19 24 |20 23 |21 22
Giornata 16 |1 9 |8 10 |7 11 |6 12 |5 13 |4 14 |3 15 |2 16 |17 24 |18 23 |19 22 |20 21
Giornata 17 |1 8 |7 9 |6 10 |5 11 |4 12 |3 13 |2 14 |15 24 |16 23 |17 22 |18 21 |19 20
Giornata 18 |1 7 |6 8 |5 9 |4 10 |3 11 |2 12 |13 24 |14 23 |15 22 |16 21 |17 20 |18 19
Giornata 19 |1 6 |5 7 |4 8 |3 9 |2 10 |11 24 |12 23 |13 22 |14 21 |15 20 |16 19 |17 18
Giornata 20 |1 5 |4 6 |3 7 |2 8 |9 24 |10 23 |11 22 |12 21 |13 20 |14 19 |15 18 |16 17
Giornata 21 |1 4 |3 5 |2 6 |7 24 |8 23 |9 22 |10 21 |11 20 |12 19 |13 18 |14 17 |15 16
Giornata 22 |1 3 |2 4 |5 24 |6 23 |7 22 |8 21 |9 20 |10 19 |11 18 |12 17 |13 16 |14 15
Giornata 23 |1 2 |3 24 |4 23 |5 22 |6 21 |7 20 |8 19 |9 18 |10 17 |11 16 |12 15 |13 14

mi basta e avanza il tabellone.....e ti ringrazio INFINITAMENTE.......

Nick

kingv
29-12-2005, 21:07
mi basta e avanza il tabellone.....e ti ringrazio INFINITAMENTE.......

Nick


ok ciao :)