from kamp import Kamp from tabell import Tabell from lagliste import lagliste class Sesong: def __init__(self, lagliste): self._lagliste = lagliste self._runder = [] self._tabell = Tabell(lagliste) nrunder = (len(lagliste) - 1)*2 # runder per sesong nkamper = len(lagliste)//2 # kamper per runde # Round-robin-algoritme # https://en.wikipedia.org/wiki/Round-robin_tournament#Circle_method lagliste1 = self._lagliste[:nkamper] # deler laglisten i to lagliste2 = self._lagliste[nkamper:] # slik at ett lag fra hver del m?tes # TODO: Gj?r ferdig round-robin-algoritmen slik at # alle lagene m?ter hver andre, en gang borte # og en gang hjemme. # # self._runder skal v?re en liste hvor elementene er lister med Kamp-objekter # (30 elementer med 8 Kamp-objekter i hver liste) def tabell(self): return self._tabell # Denne metoden simulerer en sesong # Alle kampene spilles, og tabellen oppdateres etter hver kamp def simuler(self): # self._runder er en liste hvor elementene er lister med Kamp-objekter # TODO: Simuler en sesong ved ? s?rge for at alle kampene # spilles og f?r et resultat # TODO: For hver spilte kamp, legg til resultatet i tabellen (self._tabell) self._tabell.oppdater_rangering() # oppdaterer rekkef?lgen i tabellen til slutt # Skriver ut alle serierundene (med resultater om kampene er spilt) def print_runder(self): # self._runder er en liste hvor elementene er lister med Kamp-objekter for i in range(len(self._runder)): # trenger indeks her kamper = self._runder[i] print() print("Runde", str(i + 1).rjust(2)) # indeks 0 --> runde 1, osv. print("--------") print() for kamp in kamper: hjemmelag = kamp.hjemmelag() bortelag = kamp.bortelag() m?l_hjemme = kamp.m?l_hjemme() m?l_borte = kamp.m?l_borte() # kampstr (en streng) inneholder f?rst og fremst lagene som m?tes # (se print_tabell for en forklaring av .ljust() og .rjust(), hvis du lurer) kampstr = (hjemmelag.navn() + " - " + bortelag.navn()).ljust(30) # legg til resultatet i kampstr dersom kampen er spilt og har et resultat if (m?l_hjemme is not None) and (m?l_borte is not None): kampstr += (str(m?l_hjemme).rjust(2) + " - " + str(m?l_borte).ljust(2)) print(kampstr) # Testkode (kj?res ikke n?r klassen importeres, kun n?r sesong.py kj?res) if __name__ == "__main__": testsesong = Sesong(lagliste) # sett opp sesongen testsesong.simuler() # spill alle kampene testsesong.print_runder() # print alle rundene (med resultater) testsesong.tabell().print_tabell() # skriv ut tabellen etter siste runde