jueves, 1 de julio de 2010

Mars invaders ...

Como están, aquí les dejo una versión del mítico Mars invaders. Evidentemente, la intención de este "juego" es puramentete didáctica y su unico objetivo es que aprendan todo lo que se puede llegar a hacer con el bello arte de la programación en c. Como habrán visto, en esta versión solo podemos disparar nosotros. Les propongo como un reto intentar que los enemigos (caritas) tambien puedan disparar (pista: usar threads). De cualquier forma, intentaré publicar esa mejora, eso sí, después de que ustedes lo hayan intentado. Por cierto, los controles del juego son: j(izquierda), k(disparar) y l(derecha).

Pueden ver, si es que no lo ha hecho ya, el video donde se muestra todo lo que he dicho:Video demostrativo.

Aquí tienen el ejecutable (comprimido en zip):

Invaders


Y aquí tienen el código de juego:

Código


Para aquellos que ya tienen suficiente experiencia en la programación en c, si no lo han hecho ya, deberí considerar el aprendizaje de lenguajes de má alto nivel, como pueden ser C++ o Java. C++ es una continuación de c, pero con una perspectiva de programción orientada a objetos. Einggg??? Sí, así como lo oyen, la idea se basa en métodos y atributos. Por ejemplo, considérese una el objeto "perro" (sí, el animal perro), sus métodos serían ;entre otros, "ladrar", "comer", "dormir", que en lenguaje de programación se traducirían a las funciones ladrar(), comer(), dormir(), respectivamente. Sus atributos podrían "color", "raza", "peso", etc, que en leguaje de programación se traducen en variables. Así pues, un objeto queda determinado por sus métodos (funciones) y sus atributos (variables).


Por su parte, Java es un lenguaje, al igual que C++, orientado a objetos y basado en c; pero éste es mucho más flexible; digamos que se permiten hacer cosas, de las cuales no tenemos conocimiento de lo que ocurre en el "background", de alguna manera "no tenemos el control total". No por ello deja de ser menos importante, de hecho, se está convirtiendo en uno de los lenguajes más extendidos, gracias a que permite crear programas multiplataforma, esto es, un programa que se puede ejecutar tanto en windows como en linux, por ejemplo. Bueno, no me extiendo más, lo que quería era solamente darles una idea de estos lenguajes; en todo caso, en Internet hay un montón de información al respecto.


Por último, decirles que todos estos lenguajes de alto nivel están muy bien y tal, pero recordar que el lenguaje c es una herramienta potentísima y peligrosa en algunos casos, con el que se puede tener un control absoluto de la computadora. Combinándolo con la API de windows (WINAPI), por ejemplo, se pueden crear aplicaciones interesantes como las que tengo en este blog: http://funny-programs.blogspot.com/. Suerte y adiós.