viernes, 15 de julio de 2011

Video juegos en Python: Algorítmia

Algorítmia
Por:
Bonillo, Axel
Santaella, Vincent
Tayupo, José
Tovar, Gustavo
Urbina, Katherine
(Sección B)

Ya "TayupoLandia" tiene un nombre- se llama Algorítmia.  Creo que es bastante interesante y merece la pena que le echen un vistazo:

Tayupo me estuvo contando algo sobre la trama del juego y me decía que esta aún incompleto.  Tendrá que ser él y su grupo quienes comenten sobre ello en este post.

El enlace para su descarga es este de aquí.

La página oficial del juego es  http://algoritmia-python.blogspot.com/.

55 comentarios:

  1. Me encanta...
    Como lograron hacer refrescar la pantalla con cambio de escenario ¿?

    ResponderEliminar
  2. hola,buenas noches lorena, si te fijas en el modulo que se llama escenario se encuentra esta lista que se llama escenarios:
    escenarios=[ pygame.image.load("imagenes/escenario/casaI.png),
    pygame.image.load("imagenes/escenario/casaI.png"),
    pygame.image.load("imagenes/escenario/casaI.png"),
    pygame.image.load("imagenes/escenario/salon.png"),
    pygame.image.load("imagenes/escenario/salon.png"),
    pygame.image.load("imagenes/escenario/escenario.png")]


    en esta se encuentra o mejor dicho se cargan las imagenes de los escenarios a los que el personaje puede acceder (incluyendo el primero), ¿como hago para llamarla? , ahora dirigete al modulo jugador , aqui se encuentra la clase del mismo nombre , si te fijas puedes ver que el metodo de inicializacion de esta clase se encuentra un atributo llamado entrar(self.entrar) que tiene un valor predefinido de 5 (si te fijas es el indice de la lista escenarios que carga la imagen "escenario.png" (escenario principal) , bueno ¿como hago para cargar el escenario de turno? pues solo tengo que cambiar el valor del atributo self.entrar por el valor correspondiente dependiendo con que colisione el personaje..
    ¿donde llamo el nuevo escenario? ubicate en el modulo main() en la propia funcion main() fijate en esta linea

    ventana.blit(fondo[chocho.entrar].imagen,(0,0)) aqui actualizo la pantalla con el escenario en el cual se encuentre el personaje , si te fijas fondo no lo llamo de la manera mas conocida es decir solo hacer el

    ventana.blit(fondo,(0,0)) si no que cuando llamo a fondo le coloco un indice asi como una lista ,¿porque ? porque fondo es una lista de objetos de la clase escenario,en cada indice de esta lista se encuentra la informacion de cada escenario , como por ejemplo su imagen principla,por eso cuando hago el blit coloco:

    ventana.blit(fondo[chocho.entrar].imagen,(0,0)), espero poder aclarado un poco tu duda,cualquier cosa, pregunta pregunta pregunta ...

    ResponderEliminar
  3. Buenas noches muchachos, de verdad excelente, original y entretenid juego, esperan su lanzamiento final, probandolo hoy me di cuenta que las sillas las tienen como incorporadas en la misma imagen de el fondo, o sea, que tayupito camina sobre las sillas, seria bueno incluiras aparte como hicieron con las mesas. Para que se acerque mas a la realidad.

    Mas tarde hablaremos de codigo, estoy seguro que les haremos todos muchas preguntas.

    Saludos.

    ResponderEliminar
  4. Profesor, Jose Tayupo no puede hacer comentarios, dice que visualiza un mensaje que le informa: Usuario del Blog te ha bloqueado, si puede por favor revise.

    ResponderEliminar
  5. BARBARA LEOTA:

    En la fila dos, columna tres hay un pequeño detalle con la colisión. Cuando desplazo al estudiante para que entre a la casa 3 (de izquierda a derecha) el estudiante aparece a unos espacios de la 3ra casita (del lado izquierdo), no entra a la casita.

    ResponderEliminar
  6. Yohandri Romero: estan bien los graficos, es muy interesante su idea... espero lo culminen :)

    ResponderEliminar
  7. hola buenas tardes, habib en en principios lo estabamos haciendo te la forma que planteaspero se nos presentaron algunos inconvenientes con respecto a las coliciones ya que el personaje no podria llegar hasta la mesa por que las sillas no lo dejarian, entonces decidimos incorporar las sillas a la imagen para que fuese un poco mas real ya que el personaje pudiera tener un efecto de sentado, pero como se ha dicho el juego no esta terminado, cuando el juego este terminado el tamaño de los abjetos con respecto al personaje seran acomodados...

    Axel Bonillo

    ResponderEliminar
  8. hola chicos, la verdad su juego me encanto muchachos sobre todo el tema super original e interesant ... las imagenes estan buena, suerte con la puntuacion =)

    ResponderEliminar
  9. como hicieron para montar los escenarios asi???

    ResponderEliminar
  10. aquí pueden conocer a groso modo de como fue pensado algoritmia http://www.mont-epython.blogspot.com/

    ResponderEliminar
  11. disculpen el enlace es este http://algoritmia-python.blogspot.com/

    ResponderEliminar
  12. Hola muchachos recomendaciones recuerden subir lo que tienen del juego hasta ahora a su Blog para que se vaya viendo lo que han avanzado, también seria bueno que en Blog a parte de la descripción textual pusieran imágenes para que los usuarios cuando entren al Blog vean de que trata aunque sea unas capturas de pantalla, eso llama mucho la atención, recuerden los estaré recomendando para q visiten su juego y lo descarguen de su propio blog. espero puedan subirlo pronto, hay personas ajenas a la universidad interesadas en ver nuestro trabajo

    ResponderEliminar
  13. vincen santaella: tienes razon hamara como dicen una imagen dice mas que mil palabras, sera tomado en cuenta

    ResponderEliminar
  14. Hola me encanta las imagenes y la animacion de tayupito, he hablado con tayupo acerca de la trama del videojuego y me parece interesante estoy anciosa porque suban los avances del juego, con respecto al codigo me encanta como trabajaron es un codigo simple, limpio y entendible..!!!

    ResponderEliminar
  15. Rosmauris Carrasquel:

    Muchas Felicidades muchachos, su juego está muy interesante, me llamo mucho la atención su personaje, esta muy lindo!! =)
    Estaré a la expectativa para conocer la trama completa del juego ya que solo tengo noción de una parte de ésta.

    ResponderEliminar
  16. REINALDO GUAYAPERO:

    Con respecto a lo que dice habib, quizá decidieron hacerlo así porque de lo contrario “tayupito” colisionaría con las sillas y no podría desplazarse por esa área.

    Ahora si se incluyen las sillas al igual que las mesas tendrían que pasar dos cosas:

    1.- Ampliar la resolución de la pantalla y en consecuencia la de la imagen de fondo para que de esta forma le que espacio para caminar.

    2.- reducir la resolución de “tayupito” (no es recomendable parecería un ratón)

    ResponderEliminar
  17. Hola muchachos soy Diana Mendoza, de ante mano muchas felicitaciones por su videojuego se ve que le pusieron mucho empeño y se esforzaron bastante esta súper bien el diseño grafico.

    ResponderEliminar
  18. Soy Diana Mendoza, Como hicieron para que el jugador al entrar en la casa, escuela o liceo acceda directamente a otra ventana..? Chicos cuando el jugador trata de entrar al mercado cambia inmediatamente su posición en el escenario, me imagino algo les esta fallando hay.

    ResponderEliminar
  19. hola astuto ben(barbara leota,diana) , gracias por su observacion, te comento que esto se debe a un pequeño detalle que no tomamos encuenta en la validacion de los escenarios, si te fijas en la lista escenarios (que se encuentra en el modulo del mismo nombre, al igual que le comente a tortora) se encuentran los escenarios a los cuales puede acceder el personaje del indice 0 al 4 de la lista son los cinco escenarios internos que puede acceder (por ahora) nuestro personaje, el indice 5 corresponde al escenario principal , dependiendo de que colisione con el personaje nosotros obtenemos unos de estos indices con la funcion Rect.collidelist() a la cual le pasamos como argumento una lista que contiene los atributos rect de cada edificios...el problema es que no lo validamos para que tome encuenta a los cuatro primeros escenarios (del 0 al 3 en la lista escenarios) si no a los primeros cinco (del 0 al 4 en la lista de escenarios) y esto interfiere como pueden ver con nuestrooo escenario principal..para solucionar ese problema debe hacer lo siguiente:

    ResponderEliminar
  20. hola astuto ben(barbara leota,diana) , gracias por su observacion, te comento que esto se debe a un pequeño detalle que no tomamos encuenta en la validacion de los escenarios, si te fijas en la lista escenarios (que se encuentra en el modulo del mismo nombre, al igual que le comente a tortora) se encuentran los escenarios a los cuales puede acceder el personaje del indice 0 al 4 de la lista son los cinco escenarios internos que puede acceder (por ahora) nuestro personaje, el indice 5 corresponde al escenario principal , dependiendo de que colisione con el personaje nosotros obtenemos unos de estos indices con la funcion Rect.collidelist() a la cual le pasamos como argumento una lista que contiene los atributos rect de cada edificios...el problema es que no lo validamos para que tome encuenta a los cuatro primeros escenarios (del 0 al 3 en la lista escenarios) si no a los primeros cinco (del 0 al 4 en la lista de escenarios) y esto interfiere como pueden ver con nuestrooo escenario principal..para solucionar ese problema debe hacer lo siguiente:

    * ve al modulo jugador
    *luego a la clase jugador (se encuentra en ese modulo)
    *ve al metodo : def buscar_colision(self)
    *ubicate en esta condicion:
    if self.entrar>=0 and self.entrar<6:
    * ahora cambie el 6 por un 5, es decir que te quede asi:
    if self.entrar>=0 and self.entrar<5:

    y listo deberia funcionar bien( por cierto el personaje aun no entra en esa casa que tu comentas barbara)...muchas gracias por tu observacion , y cualquier otra cosa pregunta pregunta pregunta

    ResponderEliminar
  21. hola diana , con respecto a tu pregunta de :Como hicieron para que el jugador al entrar en la casa, escuela o liceo acceda directamente a otra ventana..? tiene que ver o por lo menos pienso yo con la pregunta que hizo tortora y cuya respuesta esta arriba revisa esa respuesta a ver si es a lo que te refieres y si no puedes volver a preguntar o hacer otra sugerencia...verifica la respouesta o si no pregunta pregunta pregunta

    ResponderEliminar
  22. hola astuto ben(barbara leota,diana) , gracias por su observacion, te comento que esto se debe a un pequeño detalle que no tomamos encuenta en la validacion de los escenarios, si te fijas en la lista escenarios (que se encuentra en el modulo del mismo nombre, al igual que le comente a tortora) se encuentran los escenarios a los cuales puede acceder el personaje del indice 0 al 4 de la lista son los cinco escenarios internos que puede acceder (por ahora) nuestro personaje, el indice 5 corresponde al escenario principal , dependiendo de que colisione con el personaje nosotros obtenemos unos de estos indices con la funcion Rect.collidelist() a la cual le pasamos como argumento una lista que contiene los atributos rect de cada edificios

    ResponderEliminar
  23. el problema es que no lo validamos para que tome encuenta a los cuatro primeros escenarios (del 0 al 3 en la lista escenarios) si no a los primeros cinco (del 0 al 4 en la lista de escenarios) y esto interfiere como pueden ver con nuestrooo escenario principal..para solucionar ese problema debe hacer lo siguiente:

    ResponderEliminar
  24. * ve al modulo jugador
    *luego a la clase jugador (se encuentra en ese modulo)
    *ve al metodo : def buscar_colision(self)
    *ubicate en esta condicion:
    if self.entrar>=0 and self.entrar<6:
    * ahora cambie el 6 por un 5, es decir que te quede asi:
    if self.entrar>=0 and self.entrar<5:

    y listo deberia funcionar bien( por cierto el personaje aun no entra en esa casa que tu comentas barbara)...muchas gracias por tu observacion , y cualquier otra cosa pregunta pregunta pregunta

    ResponderEliminar
  25. buenas noches mariana , en cuanto a tu pregunta: como hicieron para montar los escenarios asi??? creo no entenderte muy bien ,podrias reformular tu pregunta de la manera mas especifica pposible?.. bueno y si se trata de como se hace para entrar y salir de un escenario como preguntaro tortora al igual que a diana les recomiendo revisar la respuesta que se publico arriba...

    ResponderEliminar
  26. En general muchas gracias por sus comentarios que indican que les gusto lo que se lleva , en especial lo de los graficos , la "animacion" del personaje y lo referente al codigo, esto nos impulsa a seguir aprendiendo no solo python y pygame, sino tambien diseño,creanme que nos costo mucho lo del diseño grafico ,creo que fue lo que mas tiempo nos quito..

    ResponderEliminar
  27. Hola Muchachos muy buenas noches a todos y de antemano muchas gracias x los buenos comentarios sobre el juego y bueno ya q se les debe una explicacion de la trama del juego se las fascilitare x aqui: se basa en los clásicos juegos de categoría RPG y tiene como trama el ir resolviendo problemas propuestos en varios escenarios del juego que deben ser resueltos por el jugador mediante conocimientos de programación, dentro del escenario principal del videojuego se pueden encontrar casas, escuela, liceo, universidad y supermercados, el personaje principal de la idea debe entablar conversaciones con personajes que estarán dispuestos en todos los
    escenarios , estos le plantean situaciones de la vida real al jugador y este debe resolver las interrogantes mediante el uso de la programación básica, el personaje principal posee una computadora portátil donde ira guardando los recursos de programación que vaya adquiriendo a lo largo del desarrollo del juego, dentro del juego se pensó también un lugar donde el jugador tendrá la oportunidad de pedir ayuda a un personaje que tendría un alto conocimiento en programación.

    aparte anexo el link del blog del juego en el cual se encuentra la trama: http://algoritmia-python.blogspot.com/

    ResponderEliminar
  28. hola muchachos buenas noches.. me parec muy interesante y entretenido su juego pero hay un problemita jejeje estube intentando jugarlo y la pantalla se me queda en negro es decir no me hace nada, nose si es q estoy haciendo algo ma y debido a eso es q no me abre osea le di al enlace y todo donde dice descargue aqui y luego lo qjecute con python y esoo y nada solo me salia la pantalla negra en todo loq intente abrir les repito nose si es q estoy haciendo algo mal diganme para asi porder abrir su juego y poder jugarlo y dar mi opinion ya q s eve interesante :)

    ResponderEliminar
  29. Tayupo hola Es Jocabed, chico algo que observe, te explico voy caminando hacia la ultima casa, me detengo en la x=686 y=251 y de alli no avanzo para nada, tengo que subir, y esquivar ese punto. si me regreso entonces solo llego hasta la casa proxima es decir hasta x=598 y=251 Jocabed Garcia

    ResponderEliminar
  30. hola a todos, bueno richard gracias x la sugerencia para eso estamos aqui para aprender y enseñar =) y Respondiendo a la Pregunta de MundoLibo los graficos se realizaron desde cero con el programa CorelDraw de verdad q fue lo q mas tiempo quito pero vemos q valio la pena xq a todos les ah gustado, salu2

    ResponderEliminar
  31. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  32. hola jocabeb,eso pasa por que ,si te fijas que el personajes en esas coordenadas tiene un pequeño roce(colisiona) con las casitas que se encuentran abajo, ¿porque? pues esto se debe a que tanato los edificios,objetos y el personajes tienen el atributo rect( un rentangulo referrencial que rodea la imagen) y para saber si colisionan o no nosotros usamos la funcion Rect.collidelist() la cual verifica si un rentangulo esta en contacto con una lista de rectangulos, y esta devolvera el mas minimo roe existente entre ellos ,por eso es que cuando apeenas roces una casa el personaje no se movera,debes verificar antes de moverte de que no notes ningun roce entre el personaje y las casas...saludos jocabaeb gracias por la inquietud y ante cualquier cosa pregunte pregunte

    ResponderEliminar
  33. muy buena tu observacion richard, creeme que sera tomada encuenta jejeje, de echo se ve muchoa mas "elegante" el codigo de esa forma y mucho mas simplicado ..gracias de nuevo muy buena sugerencia

    ResponderEliminar
  34. buenos dias liri, prueba dandole doble click al archivo que dice main.py, y deberia iniciar, porque si los coorres desde el idle python creo que te mandara errores en la indentancion y no lo correra (Esto lo menciono por que esto ma a pasado) aparentemente el idle y geany tiene problemes de compatibilidad en las indentaciones.. de todas maneras si sigue tu pproblema vuueleve a consultar...

    ResponderEliminar
  35. o simplemente ejecuta el Main.py salu2

    ResponderEliminar
  36. buenas tardes a todos,ya pueden encontrar una reseña mas completa en nuestro blog siguiendo este enlace: http://algoritmia-python.blogspot.com/2011/07/resena-del-juego-detallada.html

    ResponderEliminar
  37. Hola tayu:

    Lo de la Colision y lo del roce yo lo comprendo, lo que quiero hacerte saber es que cuando camino hacia la derecha en la y=251 no camina, ahora si voy de regreso en la misma posicion y=251, si pasa.

    Colocate en la posicion y=251 y camina de dereha a izquierda y luego camina izquiera a derecha y veras lo que pasa.

    ResponderEliminar
  38. hola jocabeb, si porque fijate que cuando vas de izquierda a derecha el pie del personaje choca con una esquinita de la casita roja, es decir esta haciendo colision, avanza un poquito asia arriba de manera que no toques la casita roja hay si podras caminas..

    ResponderEliminar
  39. mmm aun que ya creo entenderte jocabeb, tu dices aja el colisiona con la casita esta en la misma posicion y avanza,pero porque de regreso? es porque se nos presentaron problemas a la hora de validar las colisiones ,habia un momento que cuando el chocaba no podia moverse a los lados, hicimos una pequeña trampa por alli jeje para que el si pueda a moverse aun estando en contacto con el edificio,pero cuando el vuelva a entran en contacto con el la colision si no lo dejara caminar,como en el caso que tu comentas ..disculpa ,pero no te habia entendido, cualquier otra cosa pregunta pregunta pregunta jejeee

    ResponderEliminar
  40. buehh eso que dices lo entiendo perfectamente incluso desde un principio eso fue que lo pense pero no habia visualisado bien bien a Tayupito jejej:P

    ResponderEliminar
  41. LAUDIS BLANCO.

    BUENAS TARDES Y MUCHAS FELICITACIONES POR SU VIDEOJUEGO.

    EN VERDAD ESTE JUEGO CUMPLE LAS EXPECTATIVAS ESPERADAS DE SU PARTE, ES DECIR, IMÁGENES, ESCENARIOS, CÓDIGO BIEN ORGANIZADO, LLAMA LA ATENCIÓN Y SOBRE TODO DEJA ENSEÑANZA PARA AQUELLAS PERSONAS QUE LO VAYAN A JUGAR.

    ResponderEliminar
  42. ya pueden encontrar modificaciones del juego en el siguiente enlace http://algoritmia-python.blogspot.com/2011/07/resena-del-juego.html

    ResponderEliminar
  43. chicos este es mi link el de antes ya no,... ahora es este...
    http://sourceforge.net/projects/sanson/files/

    ResponderEliminar
  44. Chic@s Aqui se encuentran las Actualizaciones de PASEANDO POR VENEZUELA: http://www.megaupload.com/?d=I0XZQIG6
    y aqui su Blog...
    http://juegotupi.blogspot.com/

    ResponderEliminar
  45. jajajajja aaaaah si si vale eso mismo era lo q queria decir Tayu :P que bueno q me entendistes jeje.. esa era la inquietud jejej

    ResponderEliminar
  46. buenas noches muchachos, se ve interesante su juego pero no entiendo porque mi super computadora no lo abre en la terminal...

    ResponderEliminar
  47. Hola Tayu… Me encanto el personaje… Necesitamos que nos des una clase que explique como hiciste para que el personaje entrara en el edificio.

    Es: Yohandri Romero.

    ResponderEliminar
  48. buenas noches alexis, seguramente tiene errores con la indentacion aparentemente geany(nosotros trabajamos alli no en el idle) y idle de python no tienen las misma indentaciones..prueba en el interprete(idle) a ver si te mandas errores en la indentacion..

    ResponderEliminar
  49. jejeje gracias por el comentario yohandri, y bueno para eso es la comunidad python, de toodas maneras eso se le respondio a tortora alli arriba,pero ante cualquier duda pregunta pregunta pregunta...

    ResponderEliminar
  50. (javier arcia)
    Amigos me gustaron sus gráficos, de verdad los felicito, aunque me gustaría hacerles una pequeña sugerencia para que el juego tengas mas emoción y mas vibra que le colocasen un efecto de audio de fondo.

    ResponderEliminar
  51. Buenas noches felicitaciones por el juego esta muy bien diseñado, el esfuerzo valio la pena, los graficos espectaculares y el codigo se entienede. Tayupo con respecto a lo que se muestra en la consola, detras de la ventana del juego,que es eso?es indefinido?, porque no ejecuto ningun comando y el continua saliendo.

    pregunta Yenny Cordero

    ResponderEliminar
  52. se tomara encuenta javier tu sugerencia, y mas aun que no esta terminado nuestro juego apenas esta dando los primeros paso, gracias por la sugerencia..

    ResponderEliminar
  53. hola yenny buenas noches, pss eson son solo policias , es decir variable que me indican cual es el estado del personaje en un momento especifico, como si esta colisionando,cual es su posicion en la pantalla, si hay una direccion en la cual no puede caminar, fue algo que tambien se nos paso quitarlo, y se repite en cada instante porque si te fijas en el modulo main la mayoia de los pprint estan en el bucle principal de juego... en la version del juego qeu esta publicada en nuestro blog:
    http://algoritmia-python.blogspot.com ya esto fue eliminado al iguial que se corrigeron los detalles que menciono barbara y diana , y se usaron las sugerencias de rcihard..buena pregunta yenny pense que nadie la realizaria jejeje saludos, cualquier cosa pregunta pregunta

    ResponderEliminar