[pyar] [ANN] Age of Empyres
Joaquín Sorianello
listas en joac.com.ar
Vie Nov 20 12:48:49 ART 2015
2015-11-20 9:17 GMT-03:00 Santiago Avendaño <santiavenda2 en gmail.com>:
> No se si es contra las reglas del juego pero bue, prefiero que nos
> divirtamos jugando a que nos aburramos debugueando.
No va contra las reglas. La parte mas divertida, es la colaboración
entre jugadores.
> El siguiente código debería chequear que un movimiento sea válido (o al
> menos usando esta validación mi código dejo de crashear por un movimiento
> inválido)
> def valid_movement(x, y, direction, game_map):
> new_pos = x + direction.x, y + direction.y
> if new_pos in game_map:
> tile = game_map[new_pos]
> return tile.enemies_count == 0 and not tile.enemy_hq and
> tile.reachable and not tile.own_hq
> else:
> return False
Hay varias cosas, que no están documentadas, pero están implementadas:
Tiles, Unidades y Direcciones, son vectores, y tienen implemtado __add__
Entonces podes hacer:
def can_do_step(unit, direction, game_map):
target = unit + direction
try:
validate_target(target) # Valida que esté en el mapa y sea
reachable si no lanza InvalidActionException
target_tile = game_map[target.as_tuple()]
if target_tile.enemies_count == 0: # etc...
return True
except invalidActionException:
return False
Saludos!
--
Joaquín Sorianello
A.K.A. Joac
@_joac
More information about the pyar
mailing list