from random import randint from agent import Agent class Rutenett: def __init__(self, rad, kol, antall_feller): self._rad = rad self._kolonne = kol self._rutenett = self.lag_rutenett() self.sett_antall_feller(antall_feller) self.sett_inn_tilfeldig_agent() self.sett_inn_maal() def lag_rad(self): return ["."]*self._kolonne def lag_rutenett(self): liste = [] for i in range(self._rad): liste.append(self.lag_rad()) return liste def vis_rutenett(self): print("\n"*10) for rad in self._rutenett: for elem in rad: print(elem, end=" ") print() def vis_koordinater(self): for rad_i in range(len(self._rutenett)): # len(self._rutenett) for kol_i in range(len(self._rutenett[rad_i])): # len(self._rutenett[0]) print((rad_i, kol_i), end = " ") print() def sett_felle(self, rad, kol): self._rutenett[rad][kol] = "X" def sett_ledig(self, rad, kol): self._rutenett[rad][kol] = "." def sett_maal(self, rad, kol): self._rutenett[rad][kol] = "O" def er_ledig(self, rad, kol): return self._rutenett[rad][kol] == "." def er_maal(self, rad, kol): return self._rutenett[rad][kol] == "O" def er_felle(self, rad, kol): return self._rutenett[rad][kol] == "X" def generer_pos(self): rad = randint(0, self._rad-1) kol = randint(0, self._kolonne-1) return rad, kol def sett_agent(self, rad, kol): self._agent = Agent(rad, kol, self._rad, self._kolonne) self._rutenett[rad][kol] = self._agent def sett_antall_feller(self, antall): # antall 10 while antall > 0: rad, kol = self.generer_pos() if self.er_ledig(rad, kol): self.sett_felle(rad, kol) antall -= 1 def sett_inn_tilfeldig_agent(self): done = False while not done: rad, kol = self.generer_pos() if self.er_ledig(rad, kol): self.sett_agent(rad, kol) done = True def sett_inn_maal(self): done = False while not done: rad, kol = self.generer_pos() if self.er_ledig(rad, kol): self.sett_maal(rad, kol) done = True def flytt_agent(self, inp): rad, kol = self._agent.hent_posisjon() self.sett_ledig(rad, kol) self._agent.step(inp) # et steg framover ny_rad, ny_kol = self._agent.hent_posisjon() if self.er_felle(ny_rad, ny_kol): print("Du har g?tt over en felle!") print("Spillet avsluttes...") return True elif self.er_maal(ny_rad, ny_kol): print("\n\n\n\nGratulerer!!!!! Du har vunnet!") return True self._rutenett[ny_rad][ny_kol] = self._agent return False