Desarrollo de aplicaciones web

Proyecto: Ocho Loco

Objetivos

Durante esta actividad, los alumnos serán capaces de:

Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.

Descripción de la actividad

Este proyecto puede ser elaborado en equipos de hasta tres personas.

Desarrollar una aplicación web que implemente el juego de Ocho Loco (ver reglas más adelante). El juego debe permitir que uno o más grupos de jugadores, conectados a la misma red, jueguen de forma simultánea.

El proyecto consta de tres componentes:

I. Servidor web

Debe ser implementado como un conjunto de servicios Web escritos en Node y el framework de Express.

El estado de cada juego se debe ir almacenando en una base de datos de MonogoDB y su acceso se debe hacer mediante el ODM (Object-Document Mapper) Mongoose.

El servidor es responsable de contener y administrar todo el estado de los juegos. Los clientes pueden solicitar en cualquier momento al servidor toda la información que tengan permitido conocer (cuáles son sus cartas, cuál es la carta en el tope de la pila de descarte, el número de cartas de los oponentes, de quién es el turno actual, etc.)


II. Cliente de modo texto

Debe se implementado usando Node. La interfaz de usuario no requiere ser muy sofisticada ni bonita, pero sí debe ser fácil y conveniente de usar.


III. Cliente web

Se debe desarrollar una SPA (Single-Page Application) responsiva usando HTML, W3.CSS, JavaScript y jQuery.

Durante el juego la interacción del cliente con el servidor debe realizarse utilizando Ajax. Como formato de intercambio de datos se debe usar JSON.

Verifica que la página resultante sea HTML5 válido utilizando el Servicio de Validación de W3C.


¿Qué se debe entregar?

Para cada entrega, crea un archivo llamado ocho_loco.tgz con el contenido completo del directorio con todos los archivos que conforman el proyecto. Incluye en la raíz del directorio de tu proyecto un archivo llamado README.md donde se incluya el nombre y matrícula de los autores, así como las instrucciones de como instalar y correr la aplicación. Asegúrate también de que el archivo package.json contenga las dependencias de todos los módulos utilizados por la aplicación.

Instrucciones para subir archivo

Para entregar el archivo ocho_loco.tgz, ingresa los siguientes datos:

Solicitar NIP


Fechas de entrega

Evaluación

El proyecto será evaluado usando los siguientes criterios:

40% Programación del servidor.
30% Programación del cliente de modo texto.
30% Programación del cliente web.
1 Si se detecta cualquier tipo de plagio o fraude.


Ocho Loco: Reglas del juego

Las siguientes reglas son una adaptación de las reglas disponibles en el sitio de Bicycle Playing Cards.

Jugadores

De dos a cinco.


Objetivo

Ser el primer jugador en descartar todas las cartas de su mano.


Baraja

Una baraja inglesa estándar de 52 cartas, compuesta de:


Jugando

Inicialmente las cartas se deben barajar. Posteriormente cada jugador recibe cinco cartas. Las cartas que no fueron repartidas permanecen en la baraja boca abajo. Se toma la primera carta de la baraja que no sea un ocho y se coloca boca arriba para iniciar lo que será llamado la pila de descarte.

El orden de los turnos de los jugadores corresponde al orden en que se conectaron al juego. Cada participante durante su turno debe tomar una de las cartas de su mano y colocarla boca arriba sobre la pila de descarte. Si no cuenta con una carta para tirar, el participante debe ir tomando una carta de la baraja hasta que por fin pueda tirar o hasta que se agote la baraja. Si un jugador no puede tirar y la baraja está agotada, entonces tendrá que pasar. Durante su turno, un jugador puede tomar cartas de la baraja si así lo desea, aún si posee una carta en su mano que bien pudiera tirar.

Cada carta que se tire (a excepción de un ocho) debe corresponder a la carta en el tope de la pila de descarte, ya sea por tener el mismo palo o la misma denominación. Por ejemplo, si la carta en el tope de la pila es el rey de tréboles (♣K) entonces el jugador en turno puede tirar cualquier carta con tréboles (♣) o un rey (K). El ocho se considera “loco”. Esto quiere decir que un jugador puede tirar durante su turno un ocho sin importar qué carta esté en el tope de la pila. Cuando esto ocurra, dicho jugador debe indicar el palo (pero nunca la denominación) con el que desea que se continúe el juego. El siguiente jugador en turno debe tirar una carta con el palo especificado o con otro ocho.

El primer jugador que se quede sin cartas gana el juego.