Programmazione automatica
La generazione delle partite decide chi gioca contro chi. La programmazione decide quando e dove. FairGame si occupa della seconda parte con un risolutore di vincoli: descrivi il torneo e assegna ogni partita.
Se aggiungi una squadra a un girone all’italiana dopo la creazione degli incontri, la successiva pianificazione automatica per la giornata del girone crea le partite mancanti prima di assegnare loro un orario e un campo. Durante questa integrazione, le partite già programmate e giocate mantengono i loro posti, e il risultato indica quanti incontri sono stati creati. La generazione degli incontri aggiunge solo gli abbinamenti mancanti e non modifica mai le partite esistenti. Nella finestra della pagina delle partite, scegli Aggiungi gli incontri mancanti se la categoria ha già degli incontri. I gironi svizzeri e le esecuzioni limitate alla fase a eliminazione diretta non generano partite all’italiana. Colloca le nuove partite attorno a quelle esistenti, anche in una categoria o in una giornata già piena di partite. Il risultato indica anche quante partite esistenti sono state lasciate dov'erano, e il numero di partite inserite conta solo quelle nuove.
Il pulsante informazioni accanto alla pianificazione automatica spiega il motore selezionato e le sue regole. Il riposo minimo e gli errori di salvataggio restano visibili nella conferma.
Cosa garantisce
Qualunque altra cosa faccia, una programmazione generata non contiene mai:
- due partite sullo stesso campo allo stesso momento;
- una squadra che gioca due partite contemporaneamente;
- una partita fuori dalla disponibilità del proprio campo;
- una violazione di una regola di programmazione che hai indicato come obbligatoria.
Questi sono vincoli rigidi. Se non possono essere soddisfatti tutti, il risolutore te lo segnala invece di generare una programmazione che ne violi uno senza avvisarti. La pianificazione standard ignora le regole contrassegnate con Requires the advanced scheduler: consulta i due motori qui sotto.
Cosa ottimizza
Tra le programmazioni valide, preferisce quelle più pratiche per le squadre e più semplici da gestire:
- Riposi equilibrati. Le squadre hanno intervalli simili tra le partite, invece di vedere una squadra giocare tre partite di fila mentre un'altra aspetta quattro ore. Con un riposo minimo impostato, il pianificatore standard evita anche attese inutili: quando ci sono più gironi di quanti i campi possano ospitarne contemporaneamente, fa giocare pochi gironi alla volta fino in fondo — così ogni squadra aspetta circa una partita tra le sue — purché stia nella stessa giornata. Con Compatto lo fa anche se la giornata finisce più tardi.
- Giornate brevi. I campi restano occupati e, con Distribuito (l'impostazione predefinita) in Uso dei campi, la giornata termina il prima possibile, compatibilmente con i vincoli. Il tempo inutilizzato sui campi è ciò che trasforma un torneo di sette ore in uno di dieci.
- Turni in ordine. La pianificazione standard dispone ogni girone turno dopo turno. Un turno è un insieme di partite del girone in cui ogni squadra gioca al massimo una volta, e il turno 2 viene inserito solo dopo il turno 1, così le partite di ogni squadra sono sempre separate da un turno intero. In un girone all'italiana, quando il numero di squadre è pari, servono tanti turni quante sono le squadre meno uno (tre turni per quattro squadre); quando è dispari, servono tanti turni quante sono le squadre: in ogni turno una squadra riposa. Un girone svizzero mantiene i turni in cui è stato sorteggiato con entrambi i motori di pianificazione, e nessuno dei suoi turni inizia prima dell'ultimo fischio d'inizio del turno precedente. Il turno in cui è stata inserita una partita viene mostrato nell'elenco Partite e nel pannello Non programmate della bacheca Calendario come Girone A · Turno 3; le partite non programmate vengono elencate prima per data e poi per turno.
- Struttura prevedibile. Quando una regola lo richiede, l'ultimo turno di un girone inizia simultaneamente, così nessun risultato viene deciso dalla conoscenza dell'altro risultato.
Avviarla
Calendario automatico nella bacheca Calendario programma la giornata che stai visualizzando. La schermata di conferma mostra cosa farà l'operazione prima di spostare qualsiasi partita:
- Programmazione automatica — il motore. La Pianificazione standard è veloce e riempie gli slot disponibili una partita alla volta; mantiene il riposo minimo indicato in Impostazioni → Calendario e formato, contato in turni per un girone svizzero, e ignora le regole contrassegnate con Requires the advanced scheduler. La Programmazione avanzata (beta) risolve l'intera giornata in una volta sola, rispetta tutte le regole attivate e spiega il motivo quando non esiste una programmazione valida. La scelta cambia il motore per ogni esecuzione nel torneo, come nelle Impostazioni.
- Programma l'intera fase a gironi — in un torneo con più giornate, risolve tutte le giornate in un'unica esecuzione, inclusa la fase a eliminazione diretta. Quando le partite dei gironi si estendono su più giornate, evita che una singola giornata non possa essere risolta da sola.
- Programma solo le categorie selezionate — in un torneo con più di una categoria, programma solo le categorie che spunti in Categorie da programmare. Tutte le altre categorie restano come sono: le loro partite inserite mantengono campo e orario, nulla viene inserito sopra di esse e le loro partite non inserite restano nel pannello Non programmate. Usala per costruire la programmazione una categoria alla volta, o per rifare una categoria senza toccare le altre. Quando lo attivi, vengono selezionate le categorie che hanno ancora partite da inserire, e ogni categoria dell'elenco mostra quante delle sue partite sono programmate e quante restano da inserire — oppure Già programmata quando non ne resta nessuna.
- Uso dei campi — con la Pianificazione standard, ciò che l'esecuzione mette al primo posto. Distribuito, l'impostazione predefinita, usa tutti i campi necessari per finire il prima possibile, e le squadre possono attendere più del riposo minimo tra una partita e l'altra. Compatto dà a ogni squadra il riposo minimo e non di più, dove possibile, e la giornata può allungarsi: i gironi svizzeri completano le loro categorie una alla volta, con ogni turno in parallelo, e i gironi all'italiana giocano pochi gironi alla volta. Un girone svizzero che avrebbe solo una parte dei campi necessari a un turno inizia più tardi, invece di dividere il turno su due orari d'inizio. Inoltre incastra i gironi in modo che i campi giochino senza pause, lasciando un campo libero all'inizio o alla fine della giornata anziché tra le sue partite, senza far finire la giornata più tardi. Una squadra che riposa in un girone svizzero salta comunque quel turno. In un girone svizzero il riposo è contato in turni con entrambe le scelte: le partite di una squadra distano almeno il numero di turni impostato del suo girone (vedi regole di programmazione). La conferma ricorda la tua ultima scelta finché resti sul tabellone. La pianificazione avanzata dispone le partite a modo suo e non offre questa scelta.
- Mantieni le partite pubblicate dove sono — dopo la pubblicazione della programmazione; consulta risolvere di nuovo durante il torneo.
In un torneo con gironi e fase a eliminazione diretta i cui tabelloni non sono ancora stati sorteggiati, l'esecuzione per una giornata dei gironi li sorteggia e dispone le relative partite segnaposto nella giornata della fase a eliminazione diretta (o nell'ultima giornata, se non ne è stata impostata una). La conferma lo indica e specifica quella giornata, anche nella bacheca del telefono; il risultato indica inoltre dove sono stati inseriti i segnaposto. Quando i tabelloni esistono già, un'esecuzione riguarda solo la giornata per cui è stata avviata. Un'esecuzione per categorie selezionate sorteggia e dispone solo i loro tabelloni.
Avvia programmazione automatica la avvia. I tornei più grandi richiedono da pochi secondi a un paio di minuti; l'operazione mostra l'avanzamento e può essere annullata. Al termine, le partite sono sulla bacheca, nella tua bozza. Nulla raggiunge il sito pubblico finché non pubblichi. Se non è stato possibile inserire alcune partite, restano nel pannello Non programmate e Risultati calendario automatico spiega il motivo e cosa puoi provare. Il confronto tra i minuti di campo che servono alle tue partite e quelli offerti dalle tue finestre di disponibilità compare solo se l'esecuzione è rimasta davvero corta.
Eseguendola di nuovo sulla stessa giornata, ottimizzi nuovamente ogni partita inserita che non hai bloccato; le partite bloccate e quelle già giocate restano dove sono. Con Programma solo le categorie selezionate attivo, questo vale per le categorie che hai spuntato: le altre vengono mantenute come se tutte le loro partite fossero bloccate, solo per quell'esecuzione, e l'esecuzione continua a rispettare il riposo di ogni squadra rispetto a esse. Ogni esecuzione che inserisce partite viene salvata nella Cronologia, così puoi ripristinare con un'unica operazione la disposizione precedente. Cancellare la programmazione di una giornata per ricominciare è un'azione singola e le partite bloccate restano al loro posto: consulta modificare la programmazione a mano.
Un torneo che ridisegna i gironi ogni giorno, come un sistema a classifica in cui i gironi del secondo giorno vengono formati dalle classifiche del primo, viene risolto una giornata alla volta anche quando selezioni tutte le giornate insieme: i gironi di ogni giornata vengono disposti tenendo conto di ciò che è già stato fissato nelle giornate precedenti.
Un girone svizzero adattivo fa eccezione. I suoi fischi d'inizio vengono disposti quando applichi il formato, non dal calendario automatico: ogni turno viene inserito interamente e in ordine, in blocchi abbastanza grandi da coprire i tuoi campi, e quegli orari non vengono più spostati. Il calendario automatico li considera occupati e dispone le altre partite attorno a essi. Un'esecuzione che non trova nulla da spostare mostra Niente da ripianificare; in una giornata con fischi d'inizio adattivi aggiunge che sono mantenuti in attesa del sorteggio delle squadre. Se il tempo disponibile sui campi termina prima che ogni turno abbia un fischio d'inizio, viene indicata la categoria con il numero di turni che rientrano nella giornata: consulta turni adattivi per sapere cosa modificare.
Una volta avviata un’esecuzione del Programmazione avanzata (beta), uscire dal tabellone, cambiare giorno, ricaricare la pagina o premere Indietro non la annulla. Torna nello stesso browser entro 30 minuti dall’avvio per ritrovare l’avanzamento, anche in un’altra scheda. Solo Annulla richiede l’annullamento; l’avanzamento resta visibile fino alla conferma. Se l’annullamento non riesce, l’esecuzione resta visibile e puoi riprovare con Annulla. Le esecuzioni standard si interrompono ancora quando cambi giorno.
Quando non riesce a trovare una programmazione
Una giornata impossibile da risolvere è quasi sempre sovraccarica di vincoli, non guasta. In ordine di probabilità:
Non ci sono abbastanza ore di campo. Campi × ore disponibili ÷ (durata di gioco + pausa tra le partite) indica il tuo limite massimo. Se le partite non ci stanno, nessuna disposizione potrà farcele stare: Risultati calendario automatico confronta i minuti di campo necessari per le tue partite con quelli forniti dalle finestre di disponibilità. Aggiungi un campo, allunga la giornata, accorcia le partite o riduci il numero di squadre. Il confronto compare quando alcune partite non sono state inserite. Quando un giorno è già pieno mentre gli altri hanno spazio, indica quel giorno, perché una fase può sforare il proprio giorno anche se il totale sembra sufficiente. Allunga gli orari di quel giorno, aggiungi un giorno alla fase o accorcia le partite.
Un requisito di riposo è troppo ampio. Un riposo di 120 minuti per squadre che giocano quattro partite richiede una giornata lunga. Il riposo è la causa più comune di una programmazione impossibile: riducilo e verifica se la giornata viene risolta.
La disponibilità è più limitata del previsto. Controlla le finestre di ogni campo: è facile non accorgersi che una disponibilità impostata per sabato non è mai stata adattata alla domenica.
Le regole sono in conflitto. Due squadre che devono entrambe terminare entro le 14:00 e giocare entrambe quattro partite con 90 minuti di riposo potrebbero rendere la programmazione impossibile. FairGame indica quali vincoli non è riuscito a soddisfare insieme.
Programmazioni parziali e bloccate
Non devi affidare l'intera giornata al risolutore. Blocca le partite che hai già inserito a mano e il resto verrà risolto attorno a esse: è utile per una finale con fischio d'inizio fisso, per uno slot dedicato alla cerimonia di apertura o per una partita per cui un club ha già organizzato la trasferta. Blocca partita su una scheda ne blocca una; Blocca tutte le partite di questa giornata congela la giornata così com'è. Consulta modificare la programmazione a mano.
Risolvere di nuovo durante il torneo
La chiusura di un campo a mezzogiorno è un evento normale. Riduci la sua disponibilità per la giornata e avvia di nuovo il calendario automatico: le partite già giocate e quelle in corso restano dove sono, nulla di nuovo viene inserito prima dell'ultima partita già giocata e il resto viene riposizionato tenendo conto di quanto è già successo.
Dopo la pubblicazione della programmazione, l'opzione Mantieni le partite pubblicate dove sono nella schermata di conferma è attiva per impostazione predefinita: ogni partita ancora sul campo e all'orario pubblicati resta lì e l'esecuzione inserisce solo ciò che non è ancora stato posizionato. È quello che ti serve quando devi inserire una partita aggiunta all'ultimo momento. Quando le partite pubblicate devono essere spostate, ad esempio dal campo che hai appena perso, disattivala e blocca quelle che devono restare dove sono.
Controlla il risultato, poi pubblica la modifica e annunciala: la programmazione che le persone stanno guardando è sui loro telefoni e non si aggiorna da sola nella loro testa.