from rute import Rute from spiller import Spiller class Brett: def __init__(self): self._ruter = self._lag_brett() self._spiller1 = None self._spiller2 = None def _lag_brett(self): brett = [] for i in range(3): rad = [] for j in range(3): rad.append(Rute()) brett.append(rad) return brett def legg_til_spiller(self, symbol): ny_spiller = Spiller(symbol) if self._spiller1 is None: self._spiller1 = ny_spiller elif self._spiller2 is None: self._spiller2 = ny_spiller else: print("Det eksisterer allerede to spillere.") def plasser_brikke(self, spiller, x, y): if x >= 0 and x < 3 and 0 <= y < 3: #gyldig indeks? if self._ruter[x][y].er_opptatt() == False: #ledig plass? self._ruter[x][y].plasser_brikke(spiller) #plasserer brikke hvis ledig plass else: print("Ruten er allerede tatt.") else: print("Ugyldig posisjon.") def sjekk_vinner(self): #for hver rad og kolonne: #sjekke om alle tre rutene er opptatt #alle rutene er tatt av samme spiller for i in range(3): if self._ruter[i][0].er_opptatt() and self._ruter[i][1].er_opptatt() and self._ruter[i][2].er_opptatt() \ and self._ruter[i][0].hent_brikkeeier() == self._ruter[i][1].hent_brikkeeier() == self._ruter[i][2].hent_brikkeeier(): return self._ruter[i][0].hent_brikkeeier().hent_symbol() if self._ruter[0][i].er_opptatt() and self._ruter[1][i].er_opptatt() \ and self._ruter[2][i].er_opptatt() and self._ruter[0][i].hent_brikkeeier() == self._ruter[1][i].hent_brikkeeier() == self._ruter[2][i].hent_brikkeeier(): return self._ruter[0][i].hent_brikkeeier().hent_symbol() #ikke en del av oppgaven, men gj?r det lettere ? se hva som skjer: def print_brett(self): brett = [] for y in range(3): rad = [] for x in range(3): rute = self._ruter[x][y] if rute.er_opptatt() == False: #ledig rute rad.append("[ ]") else: rad.append("["+rute.hent_brikkeeier().hent_symbol()+"]") brett.append(rad) #printer det ut slik at det vises som "vanlig" x-akse og y-akse: # y-akse # 2 [ ] [ ] [ ] # 1 [ ] [ ] [ ] # 0 [ ] [ ] [ ] # 0 1 2 x-akse print(brett[2][0], brett[2][1], brett[2][2]) print(brett[1][0], brett[1][1], brett[1][2]) print(brett[0][0], brett[0][1], brett[0][2])