L’algoritmo di Berger, ideato dallo scacchista austriaco Johann Berger, è un metodo procedurale per stilare un calendario (diviso in giornate) di un torneo sportivo svolto con il sistema del “girone all’italiana” composto da un qualsiasi numero di concorrenti o squadre.
Ecco la traduzione in Vb.Net:
Private Function CreaCalendario(Squadre() As String) As String Dim buffer As String = "" Dim numero_squadre As Integer = Squadre.Length Dim giornate As Integer = numero_squadre - 1 Dim casa(2) As String Dim trasferta(2) As String Array.Resize(casa, numero_squadre / 2) Array.Resize(trasferta, numero_squadre / 2) For i As Integer = 0 To (numero_squadre / 2) - 1 casa(i) = Squadre(i) trasferta(i) = Squadre(numero_squadre - 1 - i) Next For i As Integer = 0 To giornate - 1 buffer &= "Giornata " & i + 1 & "<BR>" If i Mod 2 = 0 Then For j As Integer = 0 To (numero_squadre / 2) - 1 buffer &= j + 1 & " " & trasferta(j) & " - " & casa(j) & "<BR>" Next Else For j As Integer = 0 To (numero_squadre / 2) - 1 buffer &= j + 1 & " " & casa(j) & " - " & trasferta(j) & "<BR>" Next End If Dim Pivot As String = casa(0) Dim Riporto As String = trasferta(trasferta.Length - 1) Array.ConstrainedCopy(trasferta, 0, trasferta, 1, trasferta.Length - 1) trasferta(0) = casa(1) Array.ConstrainedCopy(casa, 1, casa, 0, casa.Length - 1) casa(casa.Length - 1) = Riporto casa(0) = Pivot Next Return buffer End Function