Propuesta de proyecto: asadetris

Aquí encontrará diversas conversaciones sobre el rumbo del proyecto y tareas que se planifican a corto plazo.

Propuesta de proyecto: asadetris

Notapor hugoruscitti » Jue Jul 02, 2009 11:59 pm

Saludos, quería proponerles hacer un pequeño juego para la
web de losersjuegos, un juego similar a tetris pero ambientado
en el estómago de una persona:

Imagen

Resulta que junto a Walter estamos realizando un juego para
celulares muy similar, y me pareció una pena que no tengamos
un juego así hecho en python para PC. Por lo tanto la idea que
se nos ocurrió es la siguiente:

Hacer una versión alternativa de este juego pero para PC, utilizando
python y los mismos gráficos que realizó Walter para el
juego de celulares. Esta versión para PC será completamente libre, y
si la desarrollamos con paciencia incluso podríamos crear documentos
de diseño para sirvan de tutorial a quienes recién comienzan.

Imagino que este proyecto podría ser muy interesante por cinco
motivos:


1 - Quienes participemos vamos a ganar algo de experiencia trabajando
en grupo, debatiendo ideas y conociendo herramientas que no usamos
con frecuencia para programar.

2 - Dejaremos un grupo de documentos y mensajes dentro del foro para
que toda aquella persona interesada en comenzar a hacer juegos pueda
aprender con nosotros también. Incluso si no participa activamente
programando o debatiendo.

3 - Sumaría un juego nuevo a la web.

4 - Es divertido, nos vamos a conocer un poco mejor y si todo sale bien
podremos crear mas juegos como este en el futuro.

5 - Como esto no es solo programar, habrá muchas oportunidades para
aprender a administrar proyectos: ¿que ideas implementamos?, ¿como
nos comunicaremos?, ¿que plazos nos proponemos?... etc.



Entonces, si les parece bien podemos usar este tópico del foro
para debatir ideas y reunir nuestras primeras impresiones. A mi
entender hacer este juego en un grupo pequeño no es muy difícil, pero
hacerlo en grupo a través de Internet sí lo es, es todo un
desafío, y por lo tanto necesitamos la ayuda de todos. Sería muy
gratificante para todos que resulte bien.


Si quieres participar contesta este mensaje, danos alguna idea
y pronto vamos a definir como nos vamos a organizar. Hay muchas
herramientas y experiencia sobre estos asuntos dando vueltas por
ahí, pero lo indispensable es que podamos encontrar la modalidad
de trabajo que todos disfrutemos y que nos permita concluir el
proyecto con éxito.


En resumen, estos son algunos de los puntos clave que definen
el proyecto:

    Proyecto: crear un juego similar a tetris.
    ¿Quienes participan?: Toda persona que se comprometa a hacerlo.
    ¿Como nos organizamos?: Yo sería coordinador/programador de proyecto, y debatiremos en el foro.
    ¿Por qué?: para practicar trabajando en grupo y divertirnos.
    ¿Cómo?: mediante un cronograma, objetivos conversados en este medio y ganas.
    Herramientas: Python + pygame
    Otras Herramientas: pidgin + subversion ... a definir...
    Licencia del código: GPLv3
    Licencia de todo lo demás: Creative Commons o GPL


¿que les parece la idea?, ¿se animan a participar?.

Saludos a todos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Geo » Vie Jul 03, 2009 2:44 am

Me parece una idea estupenda :).
Lamentablemente, me toman en muy mal momento, estoy dándole con todo a la parte final de mi tesis y estoy trabajando en la memoria técnica para un concurso (entre otras cosas), eso y que no he usando Python :P.

Imagino que la fecha de inicio se dará conforme vayan anotándose los participantes, promteo mantenerme al tanto y, si llegara la oportunidad, colaboraré con mucho gusto :).
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México

Notapor Juanxo » Vie Jul 03, 2009 2:47 am

Yujuuuuuu!!!!!!

Ya tenía ganas de hacer un proyecto con más gente, que hacerlos uno solo a la larga aburre.

Yo me ofrezco como programador. No vamos a engañarnos, no soy un megacrack de python/pygame, pero me defiendo.

En cuanto a aportar ideas, tampoco hay mucho que aportar al gameplay de un tetris, lo que si que se me ocurre como efecto es que al pasar de nivel o al perder, apareciera un ácido que barriera la pantalla o cosas así
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Participar

Notapor algarafa » Vie Jul 03, 2009 2:35 pm

Bueno, a mi me encantaría participar, pero me parece que no voy a poder ayudar en mucho. Voy a ver si me pongo las pilas y me miro la dichosa programación orientada a objetos, hoy mismo imprimo el libro. No creo que pueda ayudar, pero si hay algo que pueda hacer, estaré encantado. Lo que desde luego voy a hacer es seguir el proyecto, que seguro que me servirá para aprender.
Saludos!!!
http://liberatumundo.wordpress.com/
Avatar de Usuario
algarafa
 
Mensajes: 135
Registrado: Lun Oct 27, 2008 6:12 pm
Ubicación: España

Notapor joksnet » Sab Jul 04, 2009 9:38 am

Yo puedo aportar cosas de programacion, el problema es que no tengo mucho tiempo de conexion a Internet. Ademas que estoy en el continente Europeo, pero por eso no habria drama si utilizamos algun SVN.

En mi experiencia hice un Tetris en JS hace mucho, y varios jueguitos en PyGame.
Juan Manuel
joksnet
 
Mensajes: 15
Registrado: Mar Nov 28, 2006 4:28 am

Yo no me uno

Notapor endaramiz » Sab Jul 04, 2009 3:49 pm

Me parece una idea excelente ahora que son vacaciones y la gente tiene más tiempo libre (por lo general).

Yo no me uniré al proyecto porque ya estoy haciendo dos actualmente. Además, un Tetris en Pygame no me supone un gran reto (aunque mejor terminar algo fácil que dejar uno difícil a medias). Me atraería lo de trabajo en equipo, pero uno de mis proyectos es con un grupo de 7 a 10 personas.

Sin embargo, puedo intentar ayudar si salen algunas dudas. Y a lo mejor me animo luego y hago alguna parte en concreto. También puedo dar algún consejo. Como que para agilizar las cosas, se puede utilizar la "no muy frecuentada" sala jabberes losersjuegos. Por si alguien no lo sabía, sí, tenemos una. Aunque estaba borrada por falta de uso.
http://www.jabberes.org/salas/?empty=true
O desde Pidgin.

Saludos y suerte con el proyecto.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Notapor lacabra25 » Dom Jul 05, 2009 12:06 am

me parece bien desarrollar el juego entre todos, y como por los graficos no hay que preocuparse solo seria entrar de cabeza a escribir codigo, ¿como va a ser para programar entre todos, un servidor ftp, un servidor ftp con algun control de versiones,...?
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Dokan » Lun Jul 06, 2009 1:40 pm

Hola!
Me parece genial y quiero participar en lo que pueda, de hecho creo que esto puede ayudarme a reengancharme puesto que últimamente apenas he dedicado unas horas al mes a mover la serpiente de la que hablé en otro mensaje del foro.
Me parece buena idea marcar unas horas para encontrarnos en la sala losersjuegos de jabberes y así discutir un poquillo como va a ser. Incluso sería mejor todavía que esos encuentros se convirtieran en rutina. :D
Espero que todos aprendamos algo de este proyecto en grupo.
¿Por donde empezamos?
Cómo dice Hugo sería interesante ir pasito a pasito para que cualquiera que viniera detrás pudiera seguir todo el proceso (además a mi me vendría de lujo puesto que aprender me está costando mucho). Entonces ¿Cuál es el primer paso?
Avatar de Usuario
Dokan
 
Mensajes: 143
Registrado: Lun Dic 03, 2007 10:40 pm

Notapor hugoruscitti » Lun Jul 06, 2009 9:34 pm

Saludos, ¿como están?. Antetodo les agradezco mucho los mensajes, estaría
bueno que el proyecto nos resulte bueno.

Les comento un poco lo que estuve haciendo para comenzar. Primero coloqué una
nueva página en el wiki donde explico dónde está el repositorio del proyecto y
algunas notas que resumen el mensaje anterior:

http://www.losersjuegos.com.ar/juegos/asadetris

También armé un nuevo apartado en el foro para tratar sobre el juego, la
dirección para acceder es:

http://www.losersjuegos.com.ar/foro/viewforum.php?f=14


Con respecto al código, el sistema SCMs que propongo es "Mercurial", un
sistema que si bien nos queda "grande" para este proyecto, es interesante
aprender a utilizarlo y tener la posibilidad de adquirir práctica. Si tienen
experiencia utilizando "subversion", seguramente aprenderán a usar
"Mercurial" rápido, es muy sencillo.

Para mas detalles les dejo una serie de tutoriales de mercurial:

http://wiki.alliedmods.net/Mercurial_Tutorial
http://hgbook.red-bean.com/read/

ah, y tengan en cuenta que conociendo lo mínimo de "Mercurial" es suficiente
para este proyecto, no hace falta profundizar mucho en la herramienta ni
leer demasiado.

Bueno, creo que es todo. Un saludo a todos!.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Juan Carlos » Mar Jul 07, 2009 1:56 am

Hola, bueno yo me apunto. Sobre todo si se trabaja en python, asi practico un poco mas.

Saludos
Juan Carlos
 
Mensajes: 97
Registrado: Sab Jul 07, 2007 1:05 pm

Notapor thepoi » Jue Jul 09, 2009 5:23 pm

Hola.
Yo en principio me apuntaría. Si soy sincero hace mas de 1 año que no toco nada relacionado con la programación de videojuegos. Y de phyton voy muy corto (nunca lo he usado en serio)

Pero bueno, los fundamentos los tengo bastantes claros y me apetece bastante sacar este proyecto adelante
thepoi
 
Mensajes: 17
Registrado: Sab May 31, 2008 9:41 pm

Notapor joksnet » Jue Jul 09, 2009 6:50 pm

Hay algo que no entendi de Mercurial.

Lo que hice fue clonar el repositorio, hacer una modificacion e intentar commitearla.

Pero obviamente al no estar registrado y haberla clonado unicamente de lectura, pense que me iba a dar error. Pero no lo hizo, me dejo "enviar" mis modificaciones.

Y obviamente cuando entro al Changes en Google Code [0] no estan.

Saludos,

[0] http://code.google.com/p/asadetris/source/list
Juan Manuel
joksnet
 
Mensajes: 15
Registrado: Mar Nov 28, 2006 4:28 am

Notapor hugoruscitti » Jue Jul 09, 2009 11:28 pm

joksnet escribió:Pero obviamente al no estar registrado y haberla clonado unicamente de lectura, pense que me iba a dar error. Pero no lo hizo, me dejo "enviar" mis modificaciones.


Porque mercurial es un sistema distribuido, te deja hacer
commits pero son locales. Para publicarlos tienes que ejecutar
el comando "push":

http://mercurial.selenic.com/wiki/Push

por cierto, indicame tu correo por email así te asigno
permisos en el repositorio y puedes subir los cambios.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor hugoruscitti » Jue Jul 09, 2009 11:34 pm

thepoi escribió:Pero bueno, los fundamentos los tengo bastantes claros y me apetece bastante sacar este proyecto adelante


Buenisimo, estamos utilizando un repositorio mercurial donde
está el código y la documentación de planificación:

http://www.losersjuegos.com.ar/foro/viewforum.php?f=14

voy agregando tu nickname en el archivo AUTHORS, cualquier
dificultad comentanos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Meldron » Vie Jul 10, 2009 2:34 am

Me gustaría ser parte del proyecto, pero nunca use python.
Igual hace un tiempo que estoy con un proyecto de tetris en C++/SDL, casi terminado.
La cuestión es que se me ocurrió hacer un proyecto alternativo, especificamente lo mismo pero utilizando C++/SDL.
Quiero aclarar que me experiencia en C++ no es de lo mas alentadora :P
(pero bueno hay que empezar de abajo...)
¿Qué les parece?
Avatar de Usuario
Meldron
 
Mensajes: 20
Registrado: Jue Jun 04, 2009 6:04 pm
Ubicación: Cap. Fed.- Argentina

Notapor Juanxo » Vie Jul 10, 2009 2:52 am

Yo creo que realmente lo del lenguaje es lo de menos. Pero además, no conviene querer meterse en demasiados sitios a la vez. En mi opinión, lo mejor es terminar el proyecto actual y luego, por ejemplo, hacer uno de plataformas en C++
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor hugoruscitti » Vie Jul 10, 2009 3:39 am

Meldron escribió:Me gustaría ser parte del proyecto, pero nunca use python.
Igual hace un tiempo que estoy con un proyecto de tetris en C++/SDL, casi terminado.
La cuestión es que se me ocurrió hacer un proyecto alternativo, especificamente lo mismo pero utilizando C++/SDL.
Quiero aclarar que me experiencia en C++ no es de lo mas alentadora :P
(pero bueno hay que empezar de abajo...)
¿Qué les parece?


Me parece perfecto, te propongo lo siguiente: sumate a nuestro
equipo, aprenderás algo de python y de paso te dará ideas
para que luego las lleves a C++ y SDL.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor thepoi » Vie Jul 10, 2009 1:26 pm

Hola,
Yo tengo algunas dudas con Mercurial.
Primero hice un clone.
Código: Seleccionar todo
hg clone https://asadetris.googlecode.com/hg/ asadetris


Esto me creó el repositorio en un directorio llamado asadetris en mi ordenador.
Hasta ahí todo bien.
Edito algo del main.py por ejemplo. Ahora hago un commit y se me abre un fichero de texto para introducir un mensaje.
Lo introduzco e intuyo que se ha hecho el commit.

Exactamente, ¿que se supone que he hecho? ¿he actualizado algo? ¿a quien llega ese mensaje?

Y lo mas importante de todo, ¿como es una sesión de trabajo normal con mercurial?
Supongo que será algo así:

bajarse cambios recientes
editar
subir mis cambios.

pero con tanto pull, push, commit, clone etc me despisto un poco.
thepoi
 
Mensajes: 17
Registrado: Sab May 31, 2008 9:41 pm

Notapor Meldron » Vie Jul 10, 2009 4:49 pm

hugoruscitti escribió:
Meldron escribió:Me gustaría ser parte del proyecto, pero nunca use python.
Igual hace un tiempo que estoy con un proyecto de tetris en C++/SDL, casi terminado.
La cuestión es que se me ocurrió hacer un proyecto alternativo, especificamente lo mismo pero utilizando C++/SDL.
Quiero aclarar que me experiencia en C++ no es de lo mas alentadora :P
(pero bueno hay que empezar de abajo...)
¿Qué les parece?


Me parece perfecto, te propongo lo siguiente: sumate a nuestro
equipo, aprenderás algo de python y de paso te dará ideas
para que luego las lleves a C++ y SDL.


Perfecto me sumo al equipo para aprender.
Ah otra cosa, me pueden recomendar algun tutorial de python?
Saludos.
Avatar de Usuario
Meldron
 
Mensajes: 20
Registrado: Jue Jun 04, 2009 6:04 pm
Ubicación: Cap. Fed.- Argentina

Tutorial Python

Notapor algarafa » Vie Jul 10, 2009 7:46 pm

En esta web hay uno en la sección de libros, que es Introducción a la programación con Python, aunque si quieres algo más completo, puedes bajarte Aprende a pensar como un programador con Python, aunque ese creo que no esta en la web, aunque lo encontraras sin problemas. Son los que yo estoy leyendo, pero más que enseñarte solo Python, también te explican los fundamentos de la programación, si en tu caso no es necesario podrías mirar otro libro.
Sobre asadetris, ¿puedo descargar los fuentes para leerlos e ir viendo como progresan y tal, sin estar registrado en el repositorio? Si, ¿no?
¡¡¡Saludos!!!
http://liberatumundo.wordpress.com/
Avatar de Usuario
algarafa
 
Mensajes: 135
Registrado: Lun Oct 27, 2008 6:12 pm
Ubicación: España

Notapor hugoruscitti » Vie Jul 10, 2009 11:16 pm

thepoi escribió:Hola,
Yo tengo algunas dudas con Mercurial.
Primero hice un clone.
Código: Seleccionar todo
hg clone https://asadetris.googlecode.com/hg/ asadetris


Esto me creó el repositorio en un directorio llamado asadetris en mi ordenador.
Hasta ahí todo bien.
Edito algo del main.py por ejemplo. Ahora hago un commit y se me abre un fichero de texto para introducir un mensaje.
Lo introduzco e intuyo que se ha hecho el commit.

Exactamente, ¿que se supone que he hecho? ¿he actualizado algo? ¿a quien llega ese mensaje?

Y lo mas importante de todo, ¿como es una sesión de trabajo normal con mercurial?
Supongo que será algo así:

bajarse cambios recientes
editar
subir mis cambios.

pero con tanto pull, push, commit, clone etc me despisto un poco.



Saludos, te resumo un poco como es una sesion de trabajo
con mercurial (si hago a tiempo trato de redactarlo bien
y documentarlo).

Con mercurial, los commits con operaciones locales, cuando
haces algo como:

Código: Seleccionar todo
hg commit -m "mejorando sistema de ... bla bla"


no se notifica a nadie, solo queda registrado en tu equipo
ese cambio.

Para que otros reciban tus cambios tienes que empujar "push"
los cambios al servidor, algo asi:

Código: Seleccionar todo
hg push


y recién ahí los cambios van al servidor, de donde otros
podemos luego consultar y obtener las modificaciones
que has realizado usando el comando pull (jalar, atraer):

Código: Seleccionar todo
hg pull


Cabe aclarar, para hacer estas ultimas operaciones necesitas
permisos para escribir en el repositorio. Avisame por correo
tu dirección de correo gmail así te asigno los permisos. Ah, y
por supuesto lo mismo corre para todos los que participan.

Saludos
Última edición por hugoruscitti el Vie Jul 10, 2009 11:25 pm, editado 1 vez en total
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Tutorial Python

Notapor hugoruscitti » Vie Jul 10, 2009 11:21 pm

rafahack95 escribió:Sobre asadetris, ¿puedo descargar los fuentes para leerlos e ir viendo como progresan y tal, sin estar registrado en el repositorio? Si, ¿no?


Si claro, no hace falta estar registrado para ver y seguir el
progreso. De hecho queremos que lo vayan viendo. Y en
cuanto se animen hacemos posible que puedan escribir cambios...

También puedes ver el historial de cambios en la siguiente
dirección:

http://code.google.com/p/asadetris/source/list

Saludos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Meldron » Sab Jul 11, 2009 12:25 am

Bueno gracias rafahack95 por la info, ya estoy leyendo "Aprende a pensar como un programador con Python".

Tengo una duda con Mercurial, al usar el comando push se hacen los cambios en el servidor de manera definitoria? o lo tiene que confirmar otro usuario con el comando pull? Es decir siempre que alguien haga una modificacion basta con hacer hg para visualizarla o tengo que utilizar pull?(no se si se entendio :shock: )
Avatar de Usuario
Meldron
 
Mensajes: 20
Registrado: Jue Jun 04, 2009 6:04 pm
Ubicación: Cap. Fed.- Argentina

Re: Tutorial Python

Notapor algarafa » Sab Jul 11, 2009 9:21 am

hugoruscitti escribió:
rafahack95 escribió:Sobre asadetris, ¿puedo descargar los fuentes para leerlos e ir viendo como progresan y tal, sin estar registrado en el repositorio? Si, ¿no?


Si claro, no hace falta estar registrado para ver y seguir el
progreso. De hecho queremos que lo vayan viendo. Y en
cuanto se animen hacemos posible que puedan escribir cambios...

También puedes ver el historial de cambios en la siguiente
dirección:

http://code.google.com/p/asadetris/source/list

Saludos.

Ya tengo una copia en mi escritorio realizada con mercurial. Voy a leer los fuentes y las tareas por hacer a ver si puedo ayudar en algo o todavía está muy por encima de mi. Es que recién empecé con los objetos reescribiendo el juego este del pong que había en LinuxJuegos, pero creo que el concepto lo tengo pillao. Voy a leerlos y si veo que puedo hacer algo aviso, y si no pues ya colaborare en el proximo proyecto.
¡¡¡Saludos a todos!!! :wink:
http://liberatumundo.wordpress.com/
Avatar de Usuario
algarafa
 
Mensajes: 135
Registrado: Lun Oct 27, 2008 6:12 pm
Ubicación: España

Cambios

Notapor algarafa » Sab Jul 11, 2009 6:22 pm

Acabo de añadir al programa la función para cargar imágenes, y he subido los cambios para ir familiarizandome un pco con mercurial. Me parece que lo he hecho correctamente, porque en Google code salen los cambios y mi comentario.
Ejecuten hg update para actualizar su repositorio local y veran (en teoría) en la carpeta lib un archivo llamado utils.py y ahí esta la función.
Queda crear una carpeta donde guardar las imágenes, por lo que no he podido acabar la función del todo, falta en una variable llamada DATOS, dar la ruta al directorio de imágenes para que así al llamar a la función solo halla que pasar como argumento el nombre de la imagen sin la ruta completa.
¡¡¡Saludos!!!
http://liberatumundo.wordpress.com/
Avatar de Usuario
algarafa
 
Mensajes: 135
Registrado: Lun Oct 27, 2008 6:12 pm
Ubicación: España

Notapor Juanxo » Sab Jul 11, 2009 6:27 pm

yo creo que antes de empezar a programar deberíamos resolver del todo el diseño( tampoco hace falta que sea nada muy específico, solo las líneas generales) y acordar un estilo de codificación, como apuntaba hugo en la lista de tareas.
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

De acuerdo

Notapor algarafa » Sab Jul 11, 2009 6:44 pm

A vale, es wue tenía ganas de probar mercurial, antes de hacer nada más, esperare a que hayamos resuelto eso.
http://liberatumundo.wordpress.com/
Avatar de Usuario
algarafa
 
Mensajes: 135
Registrado: Lun Oct 27, 2008 6:12 pm
Ubicación: España

Re: Cambios

Notapor hugoruscitti » Sab Jul 11, 2009 6:49 pm

rafahack95 escribió:Acabo de añadir al programa la función para cargar imágenes, y he subido los cambios para ir familiarizandome un pco con mercurial. Me parece que lo he hecho correctamente, porque en Google code salen los cambios y mi comentario.
Ejecuten hg update para actualizar su repositorio local y veran (en teoría) en la carpeta lib un archivo llamado utils.py y ahí esta la función.
Queda crear una carpeta donde guardar las imágenes, por lo que no he podido acabar la función del todo, falta en una variable llamada DATOS, dar la ruta al directorio de imágenes para que así al llamar a la función solo halla que pasar como argumento el nombre de la imagen sin la ruta completa.
¡¡¡Saludos!!!


Perfecto, ahora agregue una imagen de ejemplo y modifique
el programa principal... buenisimo, ahora ya tenemos resuelta
una tarea mas...
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor hugoruscitti » Sab Jul 11, 2009 9:38 pm

Juanxo escribió:... y acordar un estilo de codificación, como apuntaba hugo en la lista de tareas.


Listo, hace un momento subí un texto con el estilo de
codificación que propongo... es un subconjunto del estilo
que usan oficialmente en python:

http://asadetris.googlecode.com/hg/doc/ ... stilo.html
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Dokan » Dom Jul 12, 2009 7:52 am

Es un gran detalle a tener en cuenta.
Sólo señalaría que me parece importante que la documentación de las clases y funciones no se quede en un comentario breve. Hay programas que separan estas cadenas de documentación del programa y hacen un texto de ayuda con ellas. Por ejemplo, el autor de «Inmersión en Python» ha hecho un módulo (apihelper.py) que obtiene esas cadenas en línea en la consola para obtener una guía rápida de funciónes o métodos y así resolver dudas a la hora de utilizarlo. Aquí pongo unos ejemplos de apihelper.info:
Código: Seleccionar todo
>>> from apihelper import info
>>> lista = []
>>> info(lista)
__add__    x.__add__(y) <x> new list list(sequence) -> new list initialized from sequence's items
__contains__ x.__contains__(y) <==> y in x
__delattr__ x.__delattr__('name') <==> del x.name
__delitem__ x.__delitem__(y) <==> del x[y]
__delslice__ x.__delslice__(i, j) <==> del x[i:j] Use of negative indices is not supported.
__eq__     x.__eq__(y) <==> x==y
__format__ default object formatter
__ge__     x.__ge__(y) <x>=y
__getattribute__ x.__getattribute__('name') <==> x.name
__getitem__ x.__getitem__(y) <==> x[y]
__getslice__ x.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported.
__gt__     x.__gt__(y) <x>y
__iadd__   x.__iadd__(y) <==> x+=y
__imul__   x.__imul__(y) <==> x*=y
__init__   x.__init__(...) initializes x; see x.__class__.__doc__ for signature
__iter__   x.__iter__() <==> iter(x)
__le__     x.__le__(y) <==> x<=y
__len__    x.__len__() <==> len(x)
__lt__     x.__lt__(y) <==> x<y
__mul__    x.__mul__(n) <==> x*n
__ne__     x.__ne__(y) <x> a new object with type S, a subtype of T
__reduce__ helper for pickle
__reduce_ex__ helper for pickle
__repr__   x.__repr__() <==> repr(x)
__reversed__ L.__reversed__() -- return a reverse iterator over the list
__rmul__   x.__rmul__(n) <==> n*x
__setattr__ x.__setattr__('name', value) <==> x.name = value
__setitem__ x.__setitem__(i, y) <==> x[i]=y
__setslice__ x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported.
__sizeof__ L.__sizeof__() -- size of L in memory, in bytes
__str__    x.__str__() <str> integer -- return number of occurrences of value
extend     L.extend(iterable) -- extend list by appending elements from the iterable
index      L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present.
insert     L.insert(index, object) -- insert object before index
pop        L.pop([index]) -> item -- remove and return item at index (default last). Raises IndexError if list is empty or index is out of range.
remove     L.remove(value) -- remove first occurrence of value. Raises ValueError if the value is not present.
reverse    L.reverse() -- reverse *IN PLACE*
sort       L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1
>>> info(lista.__add__)
__call__   x.__call__(...) <==> x(...)
__class__  <attribute>
__cmp__    x.__cmp__(y) <==> cmp(x,y)
__delattr__ x.__delattr__('name') <==> del x.name
__format__ default object formatter
__getattribute__ x.__getattribute__('name') <==> x.name
__hash__   x.__hash__() <hash>>> info(apihelper)
info       Print methods and doc strings. Takes module, class, list, dictionary, or string.
>>> from pygame import image
>>> info(image)
frombuffer pygame.image.frombuffer(string, size, format): return Surface create a new Surface that shares data inside a string buffer
fromstring pygame.image.fromstring(string, size, format, flipped=False): return Surface create new Surface from a string buffer
get_extended pygame.image.get_extended(): return bool test if extended image formats can be loaded
load       pygame module for image transfer
load_basic pygame.image.load(filename): return Surface pygame.image.load(fileobj, namehint=): return Surface load new image from a file
load_extended pygame module for image transfer
save       pygame.image.save(Surface, filename): return None save an image to disk
save_extended pygame module for image transfer
tostring   pygame.image.tostring(Surface, format, flipped=False): return string transfer image to string buffer
>>>


Más información sobre 'apihelper.info'.

En este sentido todo debería tener una cadena de documentación, módulos, clases, funciones y métodos. Podeis leer la «convención de utilización de las cadenas de documentación» (en inglés), pero básicamente se trata de explicar qué hace, cómo lo hace, qué contiene y qué devuelve, todo de una forma lo más concisa y clara posible.
Direis que es solo un juego sencillo, pero si nos acostumbramos a hacer las cosas bien desde el principio haremos que la vida sea más fácil para todos, los que empiezan y los que vuelven para refrescar. Tenemos que tener en cuenta que aquí viene gente para aprender y con estos detalles estamos ayudandoles a que no cueste tanto.
Creo que me ha quedado un poco largo, pero si conseguimos que la documentación quede clara y concisa en todo lo que hagamos habrá valido la pena.
Avatar de Usuario
Dokan
 
Mensajes: 143
Registrado: Lun Dic 03, 2007 10:40 pm

Notapor joksnet » Dom Jul 12, 2009 11:28 am

Hola.

Lei la documentacion que hay hasta ahora, esta muy bien, faltaria definir cosas mas complejas.

Yo no tengo mucha experiencia como se debe proseguir en un desarollo en equipo. Espero no saltarme muchas etapas, pero se deberia definir las distintas partes del juego en si ? Supongo que se podria hacer un Controller sobre las distintas pantallas del juego, para poderse independizar.

Existe una Wiki que reune bastantes teas sobre la mecanica del Tetris, los distintos tipos de puntaje, el soft y hard drop, piezas fantasmas, floor y wall kick, etc...

http://tetris.wikia.com/wiki/Tetris_Wiki

Saludos,
Juan Manuel
joksnet
 
Mensajes: 15
Registrado: Mar Nov 28, 2006 4:28 am

Notapor Juanxo » Dom Jul 12, 2009 5:55 pm

Buenas:
He estado trabajando un poco en el código, y me ha surgido una pequeña duda. Pone que en la primera etapa deberíamos de tener programados ya los eventos del ratón y teclado.
Pero no se que método sería el más apropiado:

-Gestionarlo dentro de cada Escenario( si pulso 'z' en el menú principal no hace nada, mientras que en el juego rota la pieza)
-Gestionarlo en la función principal y pasar una lista con los eventos al update del Escenario.

Estos son los dos que se me han ocurrido a mí, pero a lo mejor hay métodos mejores.

Por cierto: los eventos del teclado mejor manejarlo con key.get_pressed() no? porque así no haría falta andar pulsando la tecla todo el rato, sino que se deja pulsada y listo.

Un saludo
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor thepoi » Dom Jul 12, 2009 7:21 pm

-Gestionarlo en la función principal y pasar una lista con los eventos al update del Escenario.

yo creo que es la mejor opción, con ella vamos en pos de patrones de diseño (patrón controlador)
thepoi
 
Mensajes: 17
Registrado: Sab May 31, 2008 9:41 pm


Volver a Planificación y eventos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado