[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