[pyar] [ANN] Age of Empyres

Jose Luis Zanotti joseluiszanotti en gmail.com
Vie Nov 20 09:43:59 ART 2015


Muy bueno, 250 lineas de código le mande yo, y se crashea seguido :P


On 20/11/2015 9:17 a. m., Santiago Avendaño wrote:
>
>
> El 20 de noviembre de 2015, 2:27, fisa <fisadev en gmail.com 
> <mailto:fisadev en gmail.com>> escribió:
>
>     Buenas!
>     Escribo con buena onda, aunque con sueño porque ya es re tarde.
>
>     Un detalle que ahorraría muchas renegadas: estaría bueno que si
>     una unidad pide moverse o atacar en una dirección inválida, el
>     juego simplemente siga, en lugar de crashear y hacerlo perder.
>     Como regla más general: crashear el juego lo menos posible, avisar
>     nomás, porque si crashea, el ciclo de agregar más código para
>     chequearlo, subir, esperar a que se corra otra partida, etc, se te
>     hace eterno y te pasa el 75% de las veces. Te lleva 40 minutos
>     debuguear 5 lineas de código.
>
>     Hay un bug importante en el juego: las coordenadas de las acciones
>     están invertidas respecto a las coordenadas del mapa. Por ejemplo,
>     si uno hace que todas sus unidades se muevan al norte usando
>     self.N, se mueven todas hacia la izquierda del mapa. Y no es un
>     tema visual, porque el problema es que en game_map la data no está
>     girada. O sea, game_map y las acciones usan sistemas de
>     coordenadas invertidos entre si. Entonces por ejemplo, si miro
>     hacia el norte del mapa para chequear que pueda moverme, y decido
>     moverme porque puedo, resulta que después explota porque no se
>     movió hacia el norte que yo miré, sino en otra dirección.
>
>     Me pasé unas 5 horas renegando con eso, tenía lógica bastante
>     compleja de movimientos y no se notaba a simple vista que todo se
>     rompía porque estaba bugueado el juego, sumado a que cada ciclo de
>     debug lleva su buen rato de esperas.
>     Hace un rato finalmente descubrí el bug, y con un hack fácil logré
>     que mis unidades se muevan... y cuando hice andar mi primer
>     partida "bien", descubrí que las unidades tienen rango de visión
>     limitado, lo que no estaba dicho en ningún lado y básicamente me
>     rompe toda la estrategia que programé. Ya es re tarde y mañana
>     trabajo, así que no llego a modificar mi bot antes de las 18. Le
>     puse toda la onda, pero como quedó el bot creo que no da para
>     competir :(
>
>     Saludos!
>
>
>     On Thu, Nov 19, 2015 at 4:29 PM Joaquín Sorianello
>     <joac en joac.com.ar <mailto:joac en joac.com.ar>> wrote:
>
>         Mas novedades:
>
>         Luego de que varios jugadores observaran que las reglas del juego
>         beneficiaban demasiado a los bots que mantenían todas las
>         unidades en
>         la base, hicimos un cambio en las reglas:
>
>         - Al inicio del juego, las unidades se mueven a las casillas
>         aledañas
>         al cuartel, excepto una.
>         - Solo es posible tener una unidad dentro de la casilla de  la
>         base.
>
>         Saludos!
>         --
>         Joaquín Sorianello
>         A.K.A. Joac
>         @_joac
>         _______________________________________________
>         pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
>         http://listas.python.org.ar/listinfo/pyar
>
>         PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>         La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>         Libre de Argentina - http://www.usla.org.ar
>
>     -- 
>     --
>     fisa  -  Juan Pedro Fisanotti
>
>     _______________________________________________
>     pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
>     http://listas.python.org.ar/listinfo/pyar
>
>     PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>     La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>     Libre de Argentina - http://www.usla.org.ar
>
>
>
> No se si es contra las reglas del juego pero bue, prefiero que nos 
> divirtamos jugando a que nos aburramos debugueando.
>
> 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
>
> donde:
>
>   * x, y es la posición
>   * direction es una de las direcciones enumeradas en el bot (Bot.N
>     por ejemplo)
>   * game_map es el mapa
>
> Y para solucionar el problema que dijo fisa, de que las coordenadas 
> estén cambiadas, me manejé siempre con las posiciones del bot (en un 
> principio había asumido que moverse para arriba significaba sumar 1 en 
> la coordenada y, pero evidentemente no era así). Al menos mi algoritmo 
> no depende que el norte sea el norte (con que esté opuesto al sur me 
> alcanza) así que con eso no tuve problemas.
>
> Bueno no creo que pueda hacer mejoras a mi bot así que bueno competirá 
> como está el pobrecito.
>
> Saludos y que se diviertan
>
>
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151120/3846fd0a/attachment-0001.html>


More information about the pyar mailing list