Categoría: POO

Tutorial de algoritmos en javascript, minimax: Tres en raya

Escrito por el 26 septiembre, 2013 | 2 comentarios

Tras un largo periodo vacacional, aquí estamos de nuevo para explicar un nuevo tipo de algoritmo básico que nos ayudará con la IA de cierto tipo de juegos: Algoritmo minimax.

El juego donde vamos a usar este tipo de algoritmo será el tres en raya, también conocido como tres en línea, o tic tac toe en la pérfida Albión. El juego se juega típicamente con bolígrafo y papel, y consiste en rellenar tres celdas consecutivas de un tablero de 3 x 3 formando una línea vertical, horizontal o diagonal. Se juega por turnos, y normalmente se usan los símbolos “X” para el primer jugador y “O” para el segundo.

13915155-tic-tac-toe-simbolo

Para probar el juego, pincha aquí. Está hecho en HTML4 para representar el tablero y por supuesto javascript. No debería tener ningún problema en ejecutarse en cualquier tipo de máquina

» Leer la entrada entera

Etiquetas: , , , ,

Programación orientada a objetos en javascript

Escrito por el 5 abril, 2012 | 19 comentarios

Bienvenidos a un nuevo tutorial sobre el apasionante mundo del desarrollo de juegos amateur en javascript. Hoy hablaré sobre cómo implementar el paradigma de la programación orientada a objetos (de ahora en adelante, POO) de la forma menos traumáica posible, emulando a la sintaxis de Java allí donde se pueda.

En la primera lección de cómo programar el Space Invaders hice una extensa introducción sobre una primer intento de POO en javascript, pero donde teníamos serias limitaciones, que veremos a continuación.

Desgraciadamente, asumiré que los que sigan este tutorial tienen conocimientos básicos de POO. En otro caso, deberías de leer antes aquél primer tutorial, o mejor aún, aprender POO por otras fuentes antes de empezar con mis tutoriales.

Primer intento de POO

Veamos alguno de los ejemplos que puse en aquel primer tutorial. La clase padre:

    function MiPrimeraClase(){
        //Atributos de la clase
        this.atributo1;
        this.atributo2;
        this.atributo3;
        //Construcor de la clase
        this.constructorBase=function(arg1,arg2,arg3){
            this.atributo1=arg1;
            this.atributo2=arg2;
            this.atributo3=arg3;
        };
        this.constructor=function(arg1,arg2,arg3){
            this.constructorBase(arg1,arg2,arg3);
        };
        //Métodos de la clase
        this.getAtributo1=function(){
            return this.atributo1;
        };
        this.setAtributo1=function(valor){
            this.atributo1=valor;
        };
        //Aquí irían más getter y setters de los otros atributos...
        this.metodo1=function(){
            this.atributo1=this.atributo2+this.atributo3;
        };
        this.metodo2=function(arg1){
            this.atributo3+=arg1;
            this.metodo1();
        };
    }

» Leer la entrada entera

Etiquetas: ,

Tutorial canvas 2D – Cómo hacer un juego en javascript 1ª parte

Escrito por el 18 diciembre, 2011 | 12 comentarios

Bienvenidos a mi primer tutorial sobre cómo realizar un pequeño juego en JavaScript, más concretamente el tan viejo como popular Space Invaders. Para programar el código, me ha sido de gran utilidad el tutorial de Kevin Glass sobre cómo programar videojuegos en Java, donde también escogió el Space Invaders como punto de partida. Gran parte del código que he utilizado ha sido una conversión directa de sus rutinas, aunque he tenido que adaptar numerosas cosas al peculiar lenguage JavaScript, que si bien incluye la palabra “Java” en su nombre, se parece a aquél tanto como un huevo a una castaña. Para quien tenga la desgracia de no conocer el videojuego original, el juego trata sobre una invasión alienígena que el protagonista, una nave que sólo puede moverse de izquierda a derecha y disparar hacia arriba, debe evitar. Las naves alienígneas se van moviendo todas juntas y en zigzag desde la parte superior de la pantalla a la parte inferior, donde se encuentra el protagonista. El jugador debe destruir todas las naves antes de que lo alcancen, o perderá la partida.

Pero antes, la advertencia habitual: Estas lecciones están pensadas para personas con unos razonables conocimientos de programación previa, pero sin experiencia en la programación de juegos en 2D; el objetivo que buscamos es que aprendais las rutinas básicas que se necesitan para programar juegos en poco tiempo, con una buena comprensión de lo que está ocurriendo en el código en cada momento. Debo añadir que yo tampoco soy un experto en éste tema, y todo lo que he hecho aquí se basa en lo que he ido aprendiendo tanto de la experiencia propia como de haber ido viendo códigos y tutoriales de otras personas. Así que no me extrañaría que pueda haber mejores soluciones a la hora de afrontar los mismos miniproblemas que me han ido surgiendo mientras programaba el juego, por lo que si usas directamente el código, que sea bajo tu propio riesgo. Sin embargo, tampoco creo que esté del todo mal lo que he hecho. Y por su sencillez, puede ser una muy buena forma de empezar a conocer este mundillo. Por otro lado, si mientras lees ésto ves que puedes mejorar algo, no dudes en dejar un comentario con tu punto de vista; es posible que incluso añada tus consejos a éste tutorial.

Aquí tienes un enlace para poder probar un rato el juego y tener así una mejor perspectiva de lo que queremos hacer.
» Leer la entrada entera

Etiquetas: , , , , , ,

Gestionado con Wordpress y Stripes Theme Entradas (RSS) | Comentarios (RSS)