Estoy contento de anunciar que al fin he terminado el videojuego que comencé hace casi un mes. Se trata del juego de la serpiente, viborita, snake o como lo conozcas; pero en Arduino usando una LCD.

Antes que nada te invito a ver la primera parte en donde todavía no terminaba el proyecto, el cual pausé porque no tenía los componentes necesarios, pero recientemente llegó mi pedido y pude terminar el proyecto.

Características de snake en Arduino

  • Lleva contador de puntaje
  • La serpiente puede ser movida con cualquier entrada, en este caso es un Joystick pero puede ser un botón, Bluetooth, etcétera
  • Opción para colocar comida en el tablero, de manera aleatoria
  • Si la serpiente come, se hace más larga
  • La pantalla no parpadea

Lecturas recomendadas

Vamos a usar cosas simples, pero si eres un principiante te recomiendo leer los enlaces que dejo a continuación. Para empezar, vamos a generar números aleatorios con Arduino; esto servirá para colocar la comida de manera aleatoria.

En segundo lugar vamos a usar un Joystick conectado al Arduino.

Circuito

Es como combinar el circuito de LCD I2C con Arduino y Arduino con Joystick. Aquí está:

Snake (serpiente) en Arduino con LCD y Joystick

Hay que notar que no he conectado el botón del joystick, pues por ahora no tiene ningún uso.

Nota: he usado un Arduino MEGA pero en un UNO debería funcionar como un encanto.

Relacionado:  Ejemplo de Arduino y LCD con el módulo I2C

Comida de la serpiente

Como lo dije, una de las mejoras o actualizaciones es que se coloca comida de manera aleatoria en el escenario.

Para dibujar la comida tenemos dos funciones; una de ella calcula las coordenadas y la otra la coloca sobre el escenario:

Colisiones y puntaje

Le damos seguimiento a la posición de la comida y calculamos si la serpiente colisiona con la misma, es decir, sabemos si la serpiente come, valga la redundancia, comida (podemos imaginar que la serpiente es una anaconda y la comida es un ratón).

De igual modo ahora el puntaje se aumenta de manera correcta.

Dirección con el joystick

También tenemos una función que lee un joystick y devuelve la dirección hacia la que se debe dirigir la serpiente:

Evitar parpadeo de la pantalla

Me di cuenta de que no era necesario invocar al método clear de la pantalla, pues en cada momento se estaba dibujando el nuevo valor; eso redujo que la pantalla parpadee y sea desagradable a la vista.

Snake sobre Arduino – terminado

Finalmente dejaré la prueba de que todo funciona. Primero, el código:

Aquí la demostración de mí jugando:

Parzibyte jugando snake en Arduino usando un joystick

Lo tengo de igual modo en vídeo:

Por cierto, mi mayor puntaje creo que fue 169:

Mayor puntaje obtenido en juego de la serpiente con arduino y LCD

PD: lo sé, mi pantalla está oxidada, le tendré más cuidado.

Conclusión

Dejo el enlace a mi repositorio de GitHub en donde actualizaré el código si lo hago algún día; pero por ahora estoy muy satisfecho con el resultado. No olvides leer la primera parte, pues explico detalles importantes.

Relacionado:  Arduino - Imprimir byte en serial

De hecho nadie solicitó este juego y no fue un requisito de ningún modo, simplemente fue un capricho. Lo intenté hacer hace algún largo tiempo y no pude, pero al intentarlo de nuevo, lo logré y quedó estupendo.

Si quieres puedes leer más sobre Arduino o Electrónica en mi blog.

Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 375 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: