diff --git a/entities/map.py b/entities/map.py new file mode 100644 index 0000000..e88689b --- /dev/null +++ b/entities/map.py @@ -0,0 +1,57 @@ +from utils import logs as _logs +class BrSimMap(): + + def __init__(self, players= None, items= None): + self.players= players or [] + self.items= items or [] + self.world_width= 15 #seems a reasonable width for smartphones larger maps would go on a new line + self.world_height= 15 + self.game_map= [] + self.field_sym= '🟩' + self.player_sym= '🟠' + self.item_sym= '📦' + self.init_players_coordinates() + self.init_items_coordinates() + self.init_map_matrix() + + def init_map_matrix(self): + # TODO map matrix: + # show a matrix representing the game's map + # 🟩 is and empty cell + # (tomorrow we can choose different colors for different locations + # 🟠 this is a player (we could use different colors for different genders) + # 📦 this is an item (weapon or another item) + + width= [] + for i in range(self.world_width): + width.append(self.field_sym) + for i in range(self.world_height): + self.game_map.append(width) + # TODO add players and items on map + for player in self.players: + self.game_map[player.coord_y][player.coord_x]= self.player_sym + for item in self.items: + self.game_map[item.coord_y][item.coord_x]= self.item_sym + _logs.log_debug(f'init_map_matrix: {self.game_map}') + + def get_map_matrix(self): + return self.game_map + + def get_renderized_map(self): + res= '' + game_map= self.get_map_matrix() + for y in game_map: + for x in y: + res+= x + res+= '\n' + return res + + def init_players_coordinates(self): + # XXX init random player.coord_x and player.coord_y (of course not already used coords) + # parse all self.players and define random coordinates (player.coord_x, and player.coord_y) + pass + + def init_items_coordinates(self): + # XXX init random item.coord_x and item.coord_y (of course not already used coords) + # parse all self.items and define random coordinates (item.coord_x, and item.coord_y) + pass