Vientos de Libertad el blog de Juanjo Conti – en borrador permanente – abstracto, lúdico y digital
Browsing all posts in: PyGame

A* vs Avara

Octubre 15

Extendí mi ejercicio de A* para que además busque la solución utilizando Avara y las compare gráficamente.
Avara es otro algoritmo de búsqueda, pero a diferencia de A* no es ni óptimo ni completo. Ambos utilizan una heurística para estimar el costo de un estado n al estado objetivo y por esto se dice que son métodos informados.

La diferencia radica en cómo seleccionan nodos para su expansión: mientras que A* siempre elije el nodo que minimice la función camino recorrido + estimación al objetivo, Avara simplemente elije el nodo con menor estimación al objetivo (no tiene en cuenta el camino previo). Read the rest of this entry »

Un ejemplo de búsqueda A*

Octubre 7

El ejemplo consiste en un plano de 800×600 puntos con el punto (0,0) en la esquina superior izquierda. En el plano hay puntos y figuras (formadas por puntos). Uno de los puntos es el origen y otro el destino. El problema a resolver es encontrar el camino más corto desde el origen al destino moviéndose de punto a punto y sin pasar sobre una figura.

La heurística utilizada es la distancia en línea recta desde la posición actual a la posición del objetivo. Read the rest of this entry »

Cecilia Music Game

Septiembre 17

La semana pasada se desarrolló PyWeek 7. Este año participé con una entrada solo (se puede participar solo o en equipo) e hice un pequeño juego en las 10 horas que tuve para dedicarle a la competencia: Cecilia Music Game. Un juego en el que escuchamos una canción y luego tenemos que intentar reproducir eligiendo cuerdas de distinto largo (el tema de la competencia era The length of a piece of string“).

Download: cecilia_music_game-1.0
Video: http://www.youtube.com/watch?v=Z5P0GB00RpY (gracias, Ema)

Qué aprendí este PyWeek

Abril 19

Acaba de terminar la sexta edición de PyWeek.

Algo que me gusta mucho de esta competencia es que además de ser votado por tus pares, podés recibir comentarios de ellos. De los 48 comentarios que nos dejaron (el juego más votado tuvo 49 votos) resumo:

  • Hard to play: casi todos se quejaban o al menos comentaban que les resultó difícil de jugar el juego, al menos al principio. Nos recomendaban que el primer nivel nivel sea más fácil, esto ayuda al jugador a no frustrarse.
  • Volver a empezar: muchos también se quejaron de que una vez que perdías tenías que volver a empezar. Otro punto para evitar la frustración de nuestros queridos jugadores.
  • Consistencia: si todo el juego es basado en mouse, el menú también podría haberlo sido :)
  • Otras críticas menores: pocos niveles, más robots.
  • Excelente artwork: tanto los gráficos como la música fueron muy aclamados. Gracias César, David y Pablo por hacernos ver como estrellas de rock ;-)

Espero que en la próxima tengamos estas cosas presentas para nuestro plan de acción :D …y que tengamos plan de acción ;-)

PS: en otro orden de noticias, salimos 6tos.

PyWeek 6

Abril 9

El sábado pasado entregamos nuestro juego para la sexta competencia de programación de juegos en Python PyWeek. El nombre se debe a que el juego debe ser desarrollado integramente en una semana :)

Ya participamos el año pasado con un juego llamado Twisted Zombie. Una particularidad del certamen es que los juegos deben respetar un tema. El tema de cada concurso es votado por los participantes de entre una lista de 5 temas posibles y es rebelado la misma noche que comienza la competencia (9 pm en Argentina).

El tema de este año fue robot y, como el año pasado, no habíamos pensado ninguna buena idea para este :( Pero a no desesperar, siempre tenemos un as bajo la manga!

Read the rest of this entry »

Twisted Zombie en UpToDown

Marzo 12

Ayer recibí por email:

Nos alegra comunicarle que Twisted Zombie ha sido incluido en el listado de programas de uptodown.com.

Nuestros editores prueban y redactan un detallado análisis de cada aplicación, publicando aquellas que consideramos relevantes y a las que procuramos una adecuada visibilidad con un tráfico segmentado de más de 300.000 usuarios únicos día.

Read the rest of this entry »

Código Secreto (juego)

Febrero 7

Una tarde estábamos jugando a este juego en su tablero y me dieron ganas de jugarlo en la compu también. Una búsqueda rápida no nos arrojó resultados y decidí programarlo para practicar mi PyGame. La idea fue no terminar con algo muy complejo, sino más bien simple que pueda programarlo rápido y que sirva también como ejemplo de uso de esta librería.

El juego es un juego lógico: hay que pensar para poder ganar ;-) .

Para jugarlo pueden obtener la última versión desde el svn:

svn co http://svn.juanjoconti.com.ar/code/ SecretCode

A pedido de Lucio de PyAr dejo unas capturas de pantalla, espero que alcancen para entender el juego. Si no se entiende, podemos usar los comentarios de este post para aclarar dudas :) .
Read the rest of this entry »

Twisted Zombie para Windows

Septiembre 13

Twisted Zombie, el juego que desarrollamos en una semana para la quinta edición del concurso PyWeek ya funciona en Windows. Está escrito en Python, un lenguaje multiplataforma, y hemos tenido en cuenta algunas consideraciones para que funcione sin problemas en distintos sistemas operativos. Incluso lo hemos probado en un par.

Pero para usarlo en Windows necesitás tener instalado Python y Pygame.

El siguiente es un paquete con todo lo necesario para correr el juego si necesidad de instalar nada más: Twisted-Zombie-1-Win.zip

Read the rest of this entry »

Smarter N-Puzzle

Mayo 1

N-Puzzle sigue sin tener una real inteligencia, pero hice una modificación que lo hace verse un poco más inteligente:

Si un jugador o el desordenador aleatorio hace movimientos que se cancelan entre sí

  • Izquierda – Derecha
  • Izquierda – Izquierda – Derecha – Derecha
  • Izquierda – Izquierda – Arriba – Arriba – Derecha – Izquierda – Abajo – Abajo – Derecha – Derecha

el siguiente algoritmo es capás de eliminarlos de la lista de acciones y así lograr una resolución en menos movimientos y que parezca menos tonta.
Read the rest of this entry »

N-Puzzle

Abril 21

Hace unos días mandé a la lista de correos de PyAr una implementación inicial del juego N-Puzzle. n-puzzle-0.1.tgz.

Es muy sencilla. Toma una imagen, la parte en cuadraditos, quita uno de los cuadraditos y los mezcla. Luego uno puedo deslizar los cuadraditos adyasentes al espacio en blanco con las flechas de teclado. El objetivo del juego es recomponer la imagen original.

N Puzzle 0.01
Hoy estuve mejorando el código y agregándole una funcionalidad que permite que la computadora resuelva el problema (o nos ayude a hacerlo).La idea original para este programa es luego utilizarlo para probar los métodos de búsqueda que estamos estudiando en Inteligencia Artificial.

Read the rest of this entry »

Tarball diario de Life Fighter

Marzo 20

Puede obtenerse diariamente un tarball (un paquete conteniendo todos los archivos fuentes en su última versión) del juego Life Fighter desde: http://juanjoconti.com.ar/files/fighter/life-fighter-svn.tgz

LF Tarball: Siempre recién sacado del horno.
Read the rest of this entry »

El juego del verano

Marzo 4

“Este es el juego, el juegaso del verano, el que vas a bajar y jugar en todos lados..” [Reference]

Perdón. :)

Life Fighter es un juego de tablero, de estrategia, desarrollado en Python haciendo uso de PyGame, que estuve pensando y pogramando este verano. Del 10 al 20 de diciembre, del5 al 15 de enero y ahora estoy volviendo a trabajar en él.

Me cansé de trabajar solo, así que escupí todo lo que tenía a Internet. Voy a tener que ir organizándolo un poco estos días. Pero ya está, está ahí. No está ya más solo en mi frágil computadora.

“Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it.”
– Linus Torvalds

Todavía no hay ningún paquete listo para instalar, pero pueden bajar el código fuente desde el servidor svn:

svn checkout https://life-fighter.googlecode.com/svn/trunk/ life-fighter --username usuario

dónde usuario es el de su google account. También van a necesitar una password

o anónimamente:

svn checkout http://life-fighter.googlecode.com/svn/trunk/ life-fighter

(sólo se necesita tener instalado Python –estoy usando la version 2.4– y PyGame pero si tienen algún problema mandenme mail o dejen el comentario aca y los ayudo)

La página del proyecto en Google code: http://code.google.com/p/life-fighter/
Licencia: GPL 2.0

Espero que se lo bajen y lo prueben (como para ir entusiasmando la cosa)

Saludos

Juanjo