Finalmente uno che ha le idee chiare su come è fatto un calendario sportivo...![]()
allora, visto che ti ci sei messo, ti dò alcuni suggerimenti:
1) aggiungi srand() prima delle chiamate ad array_rand(), altrimenti i numeri casuali sono poco casuali, come avevi già notato
2) il motivo per cui il while ti "blocca" è che probabilmente lo manda in loop, perché fa fatica a completare il quadro delle giornate (conseguenza del problema precedente); per lo stesso motivo, ripetere il ciclo $n_squadre*10 volte non è sufficiente a completare la giornata (per questo alla fine ti mancano partite)
Questo meccanismo è comunque debole, perché ti può sempre capitare che, generando una giornata, le ultime due squadre rimaste si siano già incontrate in una giornata precedente; a questo punto, siccome hai già eliminato quella partita, il ciclo andrebbe comunque in loop.
C'è anche un altro problema, che deriva dall'array di partite che generi all'inizio.
In questo array, la prima squadra gioca sempre in casa; la seconda gioca in casa con tutte esclusa la prima; la terza con tutte escluse le prime due, eccetera. L'ultima gioca sempre fuori casa. Ovviamente questo non va bene....
In sostanza
Avevo detto una ca22ata??Originariamente inviato da luca200
Ci vuole un algoritmo apposito, non è per niente semplice