pyweek 6: día uno

por Roberto Allende Última modificación 07/04/2008 17:49
— archivado en: , , ,

He robot comienza a tener sus primeras líneas de código. En el primer día de trabajo estabilizamos la arquitectura, asignamos las tareas, y comenzamos a trabajar en cada módulo.

Faltan: 6 días, 0 Horas, 31 minutos

Es el tiempo que falta al momento de escribir esta entrada de blog. Dada la importancia del primer día de trabajo y aprovechando que es domingo, nos reunimos físicamente en menttes. La reunión comenzo a las 15:30 con una breve charla sobre las user stories del juego. Luego de una hora y media de conversaciones decidimos implementar un subconjunto mínimo compuesto de:

  • Fondo estático - (usamos como modelo double dragon)
  • Robots y humanos moviendose,
  • Dispara robot quita vida, disparas a un humano suma plata
  • Soporte de High scores (records)
  • Niveles: 3
  • Dificultad: se mueven mas rapido a medida que avanza
  • Se acaba el tiempo
  • Fin del juego: imagen del juego congelado, la razon porque perdiste y puntaje obtenido
  • Sonido disparo
  • Menu: juego nuevo, ver records, salir, creditos, ver introduccion
  • Introduccion
  • Dispararar a robots te penaliza
  • Disparar a humanos te da dinero

Y por ahora dejamos pendiente algunas ideas mas complejas:

  • Se rompen objetos del fondo: vidrieras
  • Camuflaje de las personas con los robtos + panel a la Lemmings: panel con elementos: señuelo, perro y otras cosas que te permiten identificar quien es humano, quien no.
  • Le arrojan objetos a la persona que tiene el arma y penaliza
  • Tenes cantidad de balas finitas -> economia
  • Score subible a un sitio
  • Fin de juego con una imagen apropiada a la razon del final y de ahi vuelve al menu
La arquitectura que vimos anoche paso las pruebas y comenzamos la implementación. A mi me tocó el Board y Game. Al final del día logre programar una versión inicial con los diferentes elementos del tablero, carriles por donde circulan los robots y humanos, fondo, panel informando puntaje, tiempo restante y vidas.

Otros de los avances fueron almecenamiento de los records, implementación de robot y humanos, etc. Para ver todo el código al final del día hacer:

$svn co -r 10 http://herobot.googlecode.com/svn

Escribiendo el código

Algunos recursos que usamos durante el día de hoy:

  • Pathological
    Un juego escrito en python con pygame, estamos viendo el código fuente y siguiendolo como ejemplo.
  • Using Sprites in Pygame
    Es un tutorial autocontenido con ejemplos muy claros de como usar Sprites

  • BeerBaron
    El juego en el que participe en la cuarta edición de pyweek

  • Pep 08: Guía de estilo de código Python
    Gran parte del día trabajamos en convenciones del diseño, módulos y código. Además de esto, tener a mano el pep08 siempre ayuda.

Los plazos estrictos nos fuerzan a buscar modos de trabajar concurrentementes y tolerantes a integración rápida. Por esto, cuando comenzamos con cada una de las clases, usamos un esqueleto que contiene un main como baston, por ejemplo en el Board comienzo con:

"""Game brackground
"""
import sys
import getopt

class Board:
    def __init__(self, game, pos):
        pass


# metodo baston 
def main():
    # ver http://www.sacredchao.net/~piman/writing/sprite-tutorial.shtml
    import pygame
    from pygame.locals import *

    pygame.init()
    boxes = []

    screen = pygame.display.set_mode([800, 600])
    pygame.display.update()
    while pygame.event.poll().type != KEYDOWN: pygame.time.delay(10) 


if __name__ == "__main__":
    main()

De este modo, cada uno de los desarrolladores, nuestro equipo, Palangana and Torus tience cerca de diez, puede ir probando visualmente la clase que le toca desarrollar y en main escribe como debe ser usado el módulu. Cuando integremos pensamos en mover las variables globales a atributos de clases y las llamadas a función al loop global por ejemplo.

Acciones de Documento

Desarrollado por Menttes - Construido sobre Plone® CMS — Sistema de Gestión de Contenidos de Fuentes Abiertos