1
0

start implement random action

This commit is contained in:
andrea
2025-08-01 23:49:39 +02:00
parent 8ed1bd3c4f
commit eb3b7da07a
3 changed files with 45 additions and 18 deletions

View File

@@ -115,25 +115,47 @@ class BrSimMap():
avail_directions.append((0, 1, 'giu\''))
return avail_directions
def check_near_players(self):
def check_near_players(self, Player):
# TODO Implement me
return True
# 1. range weapons like arch can attack from distance
# 2. knife, sword and punch can attack only on immediate near cell
def check_near_items(self):
coord_x, coord_y= Player.get_coordinates()
attackable_players= []
for shift in [-1, 1]:
x= coord_x + shift
if x < 0 or x >= self.world_width -1: continue
resource= self.get_map_matrix()[x][coord_y]
if resource and resource.is_player(): attackable_players.append(resource)
for shift in [-1, 1]:
y= coord_y + shift
if y < 0 or y >= self.world_height -1: continue
resource= self.get_map_matrix()[coord_x][y]
if resource and resource.is_player(): attackable_players.append(resource)
return attackable_players
def check_near_items(self, Player):
# TODO Implement me
return False
return []
def get_player_available_actions(self, Player):
# TODO: define actions list
coord_x, coord_y= Player.get_coordinates()
avail_actions= []
if self.check_near_players(Player):
avail_actions.append(1) #XXX replace with attack action (or maybe other actions on players)
avail_actions= {}
attack= self.check_near_players(Player)
if attack:
print(f'{Player.get_name()} can attack {[a.get_name() for a in attack]}')
#avail_actions.append(1) #XXX replace with attack action (or maybe other actions on players)
avail_actions[1]= attack #XXX replace with attack action (or maybe other actions on players)
if self.get_player_available_directions(Player):
avail_actions.append(2) #XXX replace with action move
if self.check_near_items(Items):
avail_actions.append(3) #XXX replace with get item action
avail_actions[2]= True #XXX replace with action move
items= self.check_near_items(Player)
if items:
avail_actions[3]= items #XXX replace with get item action
return avail_actions
def get_renderized_map(self):
res= ''