Algoritmo de búsqueda A* (A Estrella)

Implementación del algoritmo de búsqueda A* o A Estrella en Javascript.

Demo

Ejemplo de uso:

let grid = new Table(cols, rows);

  ...  // Llenar tablero

const astar = new AStar(grid);

Para instanciar la clase AStar debemos pasarle al constructor una implementación de la clase Grid, en la que se representan los obstáculos del tablero. (Ver Table como referencia de implementación).

let n1 = grid.getNode(x1, y1); // Obtenemos el nodo 1 en la posición x1, y1
let n2 = grid.getNode(x2, y2); // Obtenemos el nodo 2 en la posición x2, y2

const route = astar.route(n1, n2); // Cálculo del camino más corto

Finalmente, obtenemos el camino más corto entre dos puntos invocando el método route de astar, pasando como parámetros los nodos que representan dichos puntos.

Si la ruta es accesible se retorna un arreglo con las posiciones que conforman el camino, de lo contrario se retorna null.

Código fuente

Este es el código fuente del proyecto:

https://github.com/sergiss/a-start

Simon JS

El otro día implementé esta versión del juego Simon en Javascript (Vanilla JS)

Aunque no necesita de muchas presentaciones, Simon es un juego electrónico creado por Ralph Baer y Howard J. Morrison en 1978 y que tuvo gran éxito durante los 80.

El juego consiste en repetir correctamente la secuencia de colores y sonidos planteada. Una vez repetida, la secuencia se incrementa en un valor aleatorio. Iterando la mecánica hasta que el jugador cometa un error.

Demo

Código fuente

Este es el código fuente del proyecto:

https://github.com/sergiss/simon

Puedes visitar el pequeño engine que desarrollé para juegos web 2D.