[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