# free_space.py # ------------ # By Cory # This module defines a free space agent class. It displays if enter is pressed while the cursor is on it. class FreeSpace: character = '*' display = True revealed = False neighbors = 0 def __init__(self, position): self.position = position self.width , self.height = position def handle_keystroke(self, keystroke, game): if keystroke.name in ("KEY_ENTER"): if not game.is_empty(self.position): game.log(str(self.position) + " is clear!") self.revealed = True def hide(self): self.display = False def play_turn(self, game): if (not game.is_empty(self.position)) and self.revealed: self.display = False elif game.is_empty(self.position) and self.revealed and self.neighbors > 0: self.display = True def name_me(self, named): self.name = named def check_neighbors(self,game): names_of_mines = ["mine0","mine1","mine2","mine3","mine4","mine5","mine6","mine7","mine8","mine9"] if game.on_board((self.width + 1,self.height)): if len(game.get_agents_by_position()[(self.width + 1,self.height)]) != 0: if game.get_agents_by_position()[(self.width + 1,self.height)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width - 1,self.height)): if len(game.get_agents_by_position()[(self.width - 1,self.height)]) != 0: if game.get_agents_by_position()[(self.width - 1,self.height)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width,self.height + 1)): if len(game.get_agents_by_position()[(self.width,self.height + 1)]) != 0: if game.get_agents_by_position()[(self.width,self.height + 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width,self.height - 1)): if len(game.get_agents_by_position()[(self.width,self.height - 1)]) != 0: if game.get_agents_by_position()[(self.width,self.height - 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width + 1,self.height + 1)): if len(game.get_agents_by_position()[(self.width + 1,self.height + 1)]) != 0: if game.get_agents_by_position()[(self.width + 1,self.height + 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width + 1,self.height - 1)): if len(game.get_agents_by_position()[(self.width + 1,self.height - 1)]) != 0: if game.get_agents_by_position()[(self.width + 1,self.height - 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width - 1,self.height + 1)): if len(game.get_agents_by_position()[(self.width - 1,self.height + 1)]) != 0: if game.get_agents_by_position()[(self.width - 1,self.height + 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if game.on_board((self.width - 1,self.height - 1)): if len(game.get_agents_by_position()[(self.width - 1,self.height - 1)]) != 0: if game.get_agents_by_position()[(self.width - 1,self.height - 1)][0].name in names_of_mines: self.neighbors = self.neighbors + 1 if self.neighbors > 0: self.character = str(self.neighbors)