Sto scrivendo un programma per fare automaticamente il sorteggio per una competizione. Ci sono quattro oggetti: Debate
Judge
School
Team
Ogni dibattito ha due squadre e un giudice. Ogni squadra partecipa a tre dibattiti.
Con questo, ci sono le seguenti regole: 1) Una squadra non può affrontare qualcuno della stessa scuola 2) Una squadra non può affrontare un'altra squadra della stessa scuola (Come se giocassero una squadra da una scuola, non posso giocare di nuovo contro qualcuno di quella scuola) 3) Un giudice non può venire dalla stessa scuola di una squadra che sta giudicando.
Quindi, come potrei creare un pareggio? Un pareggio sembra un tavolo (ho solo bisogno dei dati, ma quando lo scrivi sembra questo) con una colonna per i giudici e poi altre tre colonne per ogni round di dibattiti (i tre dibattiti a cui ogni squadra partecipa).
In questo momento sto praticamente scegliendo una squadra a caso, trovando una squadra avversaria che non ha ancora giocato la scuola della prima squadra e non viene dalla stessa scuola e quindi non trova un giudice da nessuna di quelle scuole. Poi faccio la stessa cosa fino a quando ho tutti i dibattiti. Il problema è che il programma a volte entra nei solchi dove non c'è nessun altro team / giudice adatto. Un essere umano dovrebbe quindi spostare le cose intorno e cercare di trovare un modo per spostare altri giudici in giro per capirlo, ma come posso farlo con un programma. Se eseguo nuovamente il programma, lo capisco solo perché è casuale quali squadre sceglie per cosa. Fondamentalmente, mi chiedo quale sia la soluzione migliore per il problema?