Hundir la Flota

Introducción

Nuestro objetivo era realizar un juego dinámico que pudiera ser jugado por 2
personas al mismo tiempo de manera visual.
Por ello, optamos por el clásico juego Hundir la Flota mediante unas matrices
led y unos mandos simples.
El proyecto consiste en la emulación del tradicional juego del hundir la flota
para dos jugadores a partir de 4 matrices led usadas como pantallas, 3
protoboards (1 para las matrices, 2 para los mandos) y un Arduino Uno.
Cada jugador tiene 2 pantallas y un mando. En la pantalla inferior es donde
jugará la primera fase del juego que consiste en colocar los barcos y después
atacará en la otra pantalla.

Hardware y Materiales

Materiales Utilizados

1 x Arduino UNO
4 x CJMCU 8×8
3 x Placa Protoboard
12 x Botones
Cables de todo tipo

Esquema del Circuito

Para el correcto funcionamiento del proyecto hicimos uso de 3 protoboards
junto a 4 matrices de leds y 12 botones unidas con cables a la tabla de arduino.
2 de las protoboards contenían 6 botones cada una haciendo la función de un
mando y la otra protoboard que servía de punto de conexión de los pines 5V y
GND para los leds.
Cada botón estaba conectado a la fila negativa de su respectiva protoboard y a
un pin del arduino. Las matrices de leds se conectan a los 5V , al GND y a su
respectivo pin digital de la Arduino.
Cabe destacar que tuvimos que utilizar algunos pines análogos como digitales.

Carcasa

Para el tablero hicimos uso de cajas de zapatos cortadas a medida y pintadas.
Posteriormente con los colores rojo y negro marcando estos el tablero del
jugador 1 y del jugador 2 respectivamente.
En las cajas se recortan cuadrados para ajustar las matrices de leds ya que estas
actúan como pantallas. Para que el tablero se mantuviese sin romperse o
doblarse, hicimos uso de soportes hechos de cartón pegados con pegamento y
cinta americana para asegurar la robustez.
Por último, aprovechamos la mecánica de las cajas de zapatos usando las tapas
y uniendo los tableros con un poco de celo para facilitar la apertura del trabajo
por si eran necesarios cambios en el circuito o algo fallaba y necesitaba ser
arreglado.

Coste

En el coste de los materiales solo hemos incluido lo que tuvimos que comprar.

Material​Cantidad​Coste por unidad​Coste Total​
Matriz CJMCU 8×8​4​7,40€​29,60€​
Pack 40 Cables Macho-Macho​1​2,50€​2,50€​
Pack 40 Cables​Hembra-Macho​1​2,50€​2,50€​
Pack 40 Cables Hembra-Hembra​1​2,50€​2,50€​
Botones​12​0,40€​4,80€​
Spray Pintura​2​2€​4€​
Hilo Estaño​1​5,90€​5,90€​
Total:49,30€

Software

El funcionamiento del programa es sencillo, pero extenso.
En el setup se definirán los pines a utilizar y se inicializan las matrices del color
que queramos, en este caso azul.
Después, en el loop iremos leyendo la entrada de los mandos y actualizando
tanto la posición de los barcos, las posiciones que ya están ocupadas y la matriz
con el color correspondiente dependiendo de donde nos estemos
posicionando en la matriz; también se bloqueara la rotación de los barcos en
caso de estar en el borde del tablero. Esto sucederá hasta que los dos
jugadores coloquen todos sus barcos.
A continuación pasaremos a la fase de ataque, donde una vez más se leerá la
entrada de los mandos y se actualizarán las matrices correspondientes de la
misma manera ya explicada. Si un jugador falla, se cambiara el turno y así hasta
que un jugador gane.
El funcionamiento de las matrices LED se controla mediante las funciones de la
librería Adafruit_Neopixel.
El código al ser muy extenso lo compartiremos mediante el siguiente enlace.

Problemas Encontrados

● Problema 1: matriz LED muy difícil de soldar, ya que se necesitaba un
soldador sin mucha potencia.
Solución: probamos a soldar una gran cantidad de veces hasta que
funcionó.
● Problema 2: No había suficientes pines digitales disponibles, ya que se
utilizaban 4 matrices LED, cada una de las cuales requería un pin, y
además, se contaban con 12 botones que también necesitaban un pin
cada uno.
Solución: usamos pines analógicos como si fuesen pines digitales.
● Problema 3: Al soldar los leds había muchos cables que al conectarlos
con la matriz de led eran muy sensibles y se desconectan fácilmente.
Solución: usar una pistola de silicona caliente con la cual se quedasen
fijos y no hubiese problemas.

Posibles Mejoras

  1. Mando bluetooth o inalámbrico: para evitar el uso excesivo de cable y
    para que el mando sea más cómodo de utilizar.
  2. Más minijuegos, ya que como está estructurado el proyecto te permite
    añadir multitud de juegos usando las pantallas led, como un 3 en raya,
    un snake u otros más.
  3. Mejores pantallas para que se pueda asemejar a las dimensiones reales
    del hundir la flota.
  4. Añadir efectos de sonido por ejemplo cuando tocas un barco o cuando el
    barco esté completamente hundido o también cuando se inicie o
    termine la partida.
  5. Contador de ganadas y perdidas mediante una pantalla LED.

Funcionamiento del juego

El juego empieza con los dos jugadores colocando sus barcos de manera
horizontal o vertical en su matriz de led correspondiente. Además, los
jugadores podrán moverse por la matriz de led, rotar y confirmar posición a
partir de los botones implementados en el mando. A continuación, se
determinará el turno del jugador 1 o el jugador 2 para empezar a atacar. Si el
jugador falla la posición se queda encendida como blanco y se cambia el turno,
si acierta la casilla correspondiente se queda naranja y no perderá turno. Por
último, el ganador será aquel que haya conseguido averiguar todas las
posiciones de los barcos y cuando esto suceda las pantallas del jugador se
iluminarán de verde y las del perdedor de rojo.

Video

Trabajo realizado por:

Javier Aaron Parrilla Fiaño

Pablo Arce Pardo

Alejandro Martin Sarmiento

También te podría gustar...

Deja una respuesta

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