|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Algoritmo per calendario tornei!!!
Ragazzi il moi problema è il seguente...devo fare un programma che mi generi un calendario per un torneo.
![]() Esempio: Giocatori: A, B, C, D Calendario: 1° Turno: A - B ed C - D 2° Turno: A - C ed B - D 3° Turno: A - D ed B - C Naturalmente non ci possono essere ripetizioni di partite, per cui un eventuale B - A oppure un C - B non sono accettati!!! Fino a qui tutto semplice...ma se io introduco anche i giocatori E, F, G, H diventa più complesso!!! ![]() Io ho fatto un programma solo che superato i 20 giocatori diventa lento e non riesce più a trovare le coppie!! ![]() Avete qlc idea a proposito...è molto importante!!! Allego il mio programma cosi potete dare un okkiata, non è fatto troppo funzionale, ma a me serve che mi generi solo il calendario!!! ![]() Ciaoooooooooooooooooooooooooooooo ![]() PS: come idea mi è venuto in mente che potrei generare tutte le coppie possibili in un vettore, dopo di che combinarle fra di loro...non so se è un buon metodo, certo però mi sembra migliore di quello utilizzato nel progetto (almeno credo) ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Proprio non avete idee a proposito ???
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
|
Se ti serve un metodo per generare tutte le possibili coppie tra N giocatori, un metodo è questo (in pseudo-C):
giocatore[] è un array di N stringhe. for (i=0;i<N-1;i++) { for (j=i+1;j<N;j++) { printf("\ncoppia = %s - %s",giocatore[i],giocatore[j]) } }
__________________
---> Lombardp CSS Certified Expert (Master Level) at Experts-Exchange Proud user of LITHIUM forum : CPU technology Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Come te la cavi con lo spagnolo? Io avevo trovato giusto un mesetto fa questo per un amico:
http://www.lsi.upc.es/~iea/transpas/3_divide/tsld057.htm non so se è quello che serve (non era il suo caso) magari funziona. dovrebbe essere cmq abbastanza comprensibile.
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
![]() Con codici compilati puoi ridurre il tempo a un decimo e scalare sul clock della macchina. Interessa ? ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
ah, dimenticavo ... 19 righe di codice[/siz]
![]() |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
![]() adesso devo andare a mettere la batteria nel trattorino .... bruumm, brummm (... cuore di papà). ![]() ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Grazie mille...è veramente molto imporatante
![]() |
![]() |
![]() |
![]() |
#10 | |
Junior Member
Iscritto dal: Apr 2003
Città: Prov. Brescia
Messaggi: 27
|
Quote:
In sole 19 righe? Incredibile... Davvero molto interessante.... |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ma sei sicuro che faccia il calendario e non solo le combinazioni o le disposizioni del giocatori???
voglio troppoo vederlo ![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
UP....ricordati
![]() ![]() |
![]() |
![]() |
![]() |
#13 |
Registered User
Iscritto dal: Dec 2001
Messaggi: 890
|
interessato anche io!
![]() |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
[/siz]
![]() eccovi il supertorneificio[/siz] ! Runnate e divertitevi tutti. ![]() |
![]() |
![]() |
![]() |
#16 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
... e naturalmente, come promesso, il codice main in sole 19 righe !
Lo si puo avere anche più incapsulato per l'uso come subroutine autonoma, con doppio carburatore, vernice metallizzata, ABS e controscappellamento destro e sinistro. ![]() Codice:
Sub aTorneo() Call LeggiDati 'legge N, ridimensiona Nome(), Part() e legge Nome() For k = 0 To N2 - 1 iPart = 1 iMax = Int(N2 - 1 - k / 2) For i = 0 To iMax j = i + k Part(iPart, 1, 2) = N - j: Part(iPart, 1, 1) = i + 1 Part(iPart, 2, 2) = N - i: Part(iPart, 2, 1) = j + 1: iPart = iPart + 1 Next i i0 = N2 + k - 1 For j = 0 To N2 - 2 - iMax i = -j + i0 Part(iPart, 1, 2) = N - j: Part(iPart, 1, 1) = i + 1 Part(iPart, 2, 2) = N - i: Part(iPart, 2, 1) = j + 1: iPart = iPart + 1 Next j Call StampaPart(k) 'stampa le partite a coppie "simmetriche" Next k End Sub |
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
poi se interessa, due parole sull'algoritmo.
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
--poi se interessa, due parole sull'algoritmo.
Boh...a me sembra fatto decisamente bene, c:\ongrtlns! ![]() due parole, prima che me lo vada a guardare (ora non posso) secondo me sono utili, così risparmio tempo. Thx.
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Come prima impressione sembra bella
![]() Ora analizzo!! Cmq le righe dai sono un po' di +, hai messo + istruzioni suella stessa riga ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:33.