Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    programmma x fare calendari per campionato

    ragazzi ho assolutamente bisogno entro stasera di un programma capace di fare calendari per un campionato:
    Il campionato a cui mi riferisco è formato da sette giokatori, si sviluppa in sette giornate, e quindi per ogni giornata ci sarà un giokatore "a riposo". Il programma deve quindi creare le giornate del campionato senza errori (due incontri uguali per esempio).
    I giokatori possono anche essere rappresentati da num,eri, non mi interessa, penso sia un programma piuttosto semplice da fare ma siccome sono agli inizi e ho restrizioni di tempo mi farebbe piacere se qualkuno me lo postasse qui, oppure mi scrivesse il codice preciso
    (in questo caso solo in vb o c.
    Vi ringrazione anticipatamente e mi scuso per il disturbo
    i am the best so...
    fuck the rest!

  2. #2
    se ti interessa ho creato un programma in python.
    potrei mandartelo così lo puoi "tradurre" nel linguaggio che preferisci.
    fammi sapere

  3. #3
    ti posto il mio codice:
    codice:
    # calendario
    # importo la funzione random per generare "estrarre" casualmente
    #le squadre dall'urna(la lista squadre)
    from random import random
    #importo la funzione sleep per lasciare l'output di stato del programma
    # sullo schermo per alcuni secondi dopo la fine del programma
    from time import sleep
    #creo o apro in lettura il file campionato.html che ospitera'
    #i risultati dell'elaborazione
    file = open("campionato.html","w")
    # codice del programma
    sq = input("Quante squadre devono partecipare?")
    squadre = []
    #controllo il numero delle squadre, se necessario aggiungo il turno di riposo
    if sq%2 != 0:
        squadre.append("riposo")
    #chiedo il nome di ciascuna squadra
    for k in range (1,sq+1):
        ask = "nome squadra %s" %(k)
        name = raw_input(ask)
        squadre.append(name)
    #creazione delle variabili che saranno poi utilizzate
    squadreBAK = []
    squadreBAK = squadre[:]
    partite = []
    partiteALL = []
    tent = 0
    sq = len(squadre)
    giornate = len(squadre)-1
    CAMPIO = len(squadre)*(len(squadre)-1)
    PG = (len(squadre)+1)/2
    #parte l'estazione
    print "ATTENDERE GENERAZIONE CALENDARIO IN CORSO"
    #finche' il numero delle partite non e' uguale a quello finale
    #creo le singole giornate
    while len(partiteALL) != CAMPIO:
        z = len(squadre)
        squadre = squadreBAK[:]
        partite = []
        while squadre:
            h = int(z*random())
            a = squadre.pop(h)
            z = len(squadre)
            k = int(z*random())
            b = squadre.pop(k)
            z = len(squadre)
            VS = "%s - %s" % (a,b)
            if VS in partiteALL:
                squadre = squadreBAK[:]
                z = len(squadre)
                partite = []
                tent = tent+1
                # tent evita che le ultime giornate siano incompatibili
                # qualche suggerimento per la sua lunghezza nella funzione if successiva?
                if tent == (10000*sq):
                    #se i tentativi effettuati sono troppi reinserisco la prima giornata
                    for k in range(0,sq):
                        a = partiteALL.pop(0)
                        b = partiteALL.pop(0)
            else:
                partite.append(VS)
                VSR = "%s - %s" % (b,a)
                partite.append(VSR)
        partiteALL = partiteALL+partite
        PERC = 100*len(partiteALL)/CAMPIO
        PERC = str(PERC)+"%"
        print "completato %s" % (PERC)
    #inserisco le giornate nel file HTML(con il relativo formato)
    for k in range(1,(giornate+1)):
        GIOR = "Giornata %s"% (k)
        #print GIOR
        GIOR = ""+str(GIOR)+""+"
    "
        file.write(str(GIOR))
        for k in range(0,PG):
            j = partiteALL.pop(0)
            w = partiteALL.pop(0)
            #print j
            j = str(j)+"
    "
            file.write(str(j))
    file.close()
    #lascio l'output per 3 secondi(utile se si esegue il programma in modalita' DOS
    #(non lascia scappare la finestra appena ha eseguito le operazioni)
    sleep(3)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.