Práctica Final: Batalla Naval

Crear un juego online para jugar a la batalla naval.

Batalla Naval

Flujo de pantallas

  1. Login: al ingresar a la página, se pedirá al usuario que se autentique
    • La autenticación sera por medio de Google.
  2. Home: una vez autenticado, podrá jugar y ver el historial con algunas estadísticas de las partidas jugadas.
    • Para jugar habrá un botón “Play” que esperará un contrincante y los llevara al juego
    • Bonus: historial mostrando el usuario contrincante, resultado (ganado, perdido, abandonado), fecha, duración y eficiencia.
    • Bonus: gráfico de performance/eficiencia a través del tiempo, o porcentaje de ganados vs perdidos.
    • Bonus: poder crear una partida con id/url y compartirla. Para jugar con un amigo y no un jugador random.
  3. Juego, preparación:
    • Una vez encontrados los dos oponentes, se creara una nueva ejecución.
    • Cada jugador ubicará sus barcos en el tablero (drag & drop).
    • Cuando ambos jugadores estén listos comenzará la batalla.
    • Bonus: botón para disponer los barcos de manera automática.
    • Bonus: tiempo de expiración, superado ese tiempo, los barcos que todavía no se ubicaron serán dispuestos automáticamente.
  4. Juego, batalla:
    • Consistirá en un juego de turnos donde, alternadamente, cada jugador disparará un tiro.
    • Los turnos serán dados por el servidor.
    • En cada turno el jugador estará esperando recibir el tiro del oponente, o estará haciendo uso de su posibilidad de tiro.
    • Se deberá mostrar feedback de cada tiro a ambos usuarios y el resultado de los mismos será computado en el servidor.
    • Bonus: botón “Auto-Play” para disparar automáticamente.
    • Bonus: tiempo de expiración, superado ese tiempo, el tiro se dispara automáticamente.
    • Bonus: sonido, animación.
    • Bonus: poder hacer “refresh” de la pagina sin perder el juevo. La URL tandra el id de la partida y el estado completo se cargara del servidor.
  5. Juego, finalización:
    • Si el server detecta un ganador, se notificara a cada jugador su resultado.
    • Botón para volver a la home.
    • Bonus: botón para buscar otro oponente.
    • Bonus: botón para volver a jugar contra el mismo oponente.

Entregas:

  1. 22/04
    • Propuesta de diseño de pantallas
    • Home / Login
  2. 29/05
    • Prototipo de mensajería para el juego, donde se conecte a dos usuarios por websockets y estos puedan mensajearse entre si.
  3. 06/05
    • Preparación. Ubicación de flota en el tablero.
  4. 13/05
    • Estados del juego.
    • Sincronización de turnos.
    • Prototipo de batalla.
  5. 20/05
    • Batalla.
  6. 27/05
    • Finalización.
  7. 03/06
    • Deployment.
  8. 10/06
    • Presentación.

Requerimientos:

Batalla Naval