from rute import Rute from spiller import Spiller class Brett: def __init__(self): self._ruter = [] for i in range(3): rad = [] for x in range(3): rad.append(Rute()) self._ruter.append(rad) self._spiller1 = None self._spiller2 = None def legg_til_spiller(self, symbol): ny_spiller = Spiller(symbol) if ny_spiller.hent_symbol() is None: return elif self._spiller1 is None: self._spiller1 = ny_spiller return self._spiller1 elif self._spiller2 is None: self._spiller2 = ny_spiller return self._spiller2 else: print("Det finnes allerede 2 spillere!") return def plasser_brikke(self, spiller, x, y): rute = self._ruter[y][x] if rute.er_opptatt(): print("Rute er allerede opptatt!") return False rute.plasser_brikke(spiller) return True def sjekk_vinner(self): # rad for y in range(3): eiere = [] for x in range(3): eiere.append(self._ruter[y][x].hent_brikkeeier()) if eiere[0] is not None and eiere[1] is not None and eiere[2] is not None: if eiere[0].hent_symbol() == eiere[1].hent_symbol() == eiere[2].hent_symbol(): return eiere[0].hent_symbol() # kolonne for x in range(3): eiere = [] for y in range(3): eiere.append(self._ruter[y][x].hent_brikkeeier()) if eiere[0] is not None and eiere[1] is not None and eiere[2] is not None: if eiere[0].hent_symbol() == eiere[1].hent_symbol() == eiere[2].hent_symbol(): return eiere[0].hent_symbol() # diagonal 1 eiere1 = [] for i in range(3): eiere1.append(self._ruter[i][i].hent_brikkeeier()) if eiere1[0] is not None and eiere1[1] is not None and eiere1[2] is not None: if eiere1[0].hent_symbol() == eiere1[1].hent_symbol() == eiere1[2].hent_symbol(): return eiere1[0].hent_symbol() # diagonal 2 eiere2 = [] for i in range(3): eiere2.append(self._ruter[i][2 - i].hent_brikkeeier()) if eiere2[0] is not None and eiere2[1] is not None and eiere2[2] is not None: if eiere2[0].hent_symbol == eiere2[1].hent_symbol() == eiere2[2].hent_symbol(): return eiere2[0].hent_symbol() def fullt_brett(self): for y in range(3): for x in range(3): if not self._ruter[y][x].er_opptatt(): return False return True def tegn_brett(self): for y in range(3): rad = "" for x in range(3): rad += " " + str(self._ruter[y][x]) + " " print(rad) if y < 2: print("--------------") def spill(self): if self._spiller1 is None or self._spiller2 is None: print("Det m? eksistere 2 spillere") return aktiv = self._spiller1 stopp = False while not stopp: print("Brett: ") self.tegn_brett() print("N? er det", aktiv.hent_symbol(), "sin tur") spill_inp = input("Skriv inn koordinater: ").strip().split() x = int(spill_inp[0]) y = int(spill_inp[1]) brikke = self.plasser_brikke(aktiv, x, y) if brikke: vinner = self.sjekk_vinner() if vinner is not None: print("Vi har f?tt en vinner") self.tegn_brett() print("Vinner: ", vinner) return if self.fullt_brett(): print("Brettet er fullt") self.tegn_brett() return if aktiv is self._spiller1: aktiv = self._spiller2 else: aktiv = self._spiller1