project_game/free_space.py

68 lines
3.6 KiB
Python

# 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)