Estás en:   ArielOrtiz.com > Desarrollo de aplicaciones distribuidas > Proyecto: Sabotaje

Proyecto: Sabotaje

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 dos o tres personas.

Desarrollar una aplicación web que implemente el juego de Sabotaje. El juego debe permitir que una o más parejas de jugadores, conectadas a la misma red, jueguen de forma simultánea.

El código del lado del servidor se debe escribir en Python y Django. El estado de cada juego se debe ir almacenando en una base de datos de MySQL, y su acceso se debe hacer mediante el ORM provisto por Django. 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 fichas, la posición de las fichas del oponente, de quién es el turno actual, etc.)

¿Qué se debe entregar?

Debe haber dos tipos de clientes:

Sabotaje: Reglas del juego

Las siguientes reglas e imágenes fueron tomadas de ItsYourTurn.com.

Sabotaje es un juego parecido al juego de mesa Stratego. Dos jugadores, cada uno controlando un ejército compuesto de varias fichas, se enfrentan a un duelo de estrategias.

Objetivo del juego

Un jugador gana el juego de Sabotaje cuando:

Disposición inicial del tablero

El tablero consta de un cuadriculado de 8 por 8. Cada jugador cuenta con 20 fichas compuestas de la siguiente manera:

Ficha Cantidad por jugador
Cuartel general 1
Mina atómica 3
General rango 5 2
General rango 4 2
General rango 3 2
General rango 2 2
General rango 1 2
Espía 3
Saboteador 3
Total: 20

Antes de comenzar el juego, los dos jugadores deben colocar sus fichas en el tablero. Las 20 fichas de cada jugador deben quedar colocadas en los primeros tres renglones del tablero (relativo al jugador) tal como lo muestra la siguiente figura:

Nota 1: Siempre quedarán cuatro espacios sin ocupar dentro de los tres renglones de cada jugador.

Nota 2: Las fichas de los volcanes son parte del tablero y están en posiciones fijas predeterminadas.

Movimientos

En cada turno el jugador debe mover dos de sus propias fichas, a no ser que sólo pueda mover una. Una ficha solo puede moverse de forma vertical u horizontal a un espacio adyacente que esté vació o que contenga una ficha enemiga. No se pueden hacer movimientos en diagonal.

Una ficha no puede moverse de regreso al espacio en el que encontraba en el turno anterior. Pero si ya ha pasado más de un turno desde que dejó dicho espacio, entonces la ficha tiene permitido regresar a éste.

En la figura siguiente, el general de rango 5 puede moverse en la dirección de cualquiera de las flechas amarillas. Si se mueve al espacio de arriba, en su siguiente turno sólo se puede mover a donde apuntan las flechas azules, y no al espacio marcado con una X roja de donde partió. Pero en cualquier turno posterior sí podrá regresarse al lugar donde está la X roja.

Atacando

Los ataques se hacen moviendo una ficha a un cuadro ocupado por una ficha enemiga. Una de las dos fichas será destruida (removida del tablero) dependiendo de la identidad de cada una (ver más abajo). Cuando una ficha ataca a otra del mismo tipo, el atacante siempre gana.

Identidades Ocultas

La identidad de las fichas enemigas es desconocida. Al inicio del juego sólo aparecen como un signo de interrogación. Su identidad se revela únicamente cuando ocupan un espacio pegado a un espía enemigo (ver más abajo). Si se ataca a una ficha enemiga desconocida, sólo se conoce el resultado del ataque mas no qué ficha es.

Fichas

Cuartel general

El cuartel general puede ser colocado en cualquier lugar al momento de establecer las posiciones iniciales del tablero, pero no puede ser movido durante el juego. Un jugador gana el juego cuando ataca la ficha del cuartel general de su oponente.

Mina atómica

Las minas atómicas también son colocadas antes de iniciar el juego y no pueden moverse una vez iniciado éste. Si cualquier ficha enemiga, exceptuando el saboteador, ataca una mina atómica, la ficha enemiga es destruida y la mina permanece en el tablero. Si un saboteador ataca una mina atómica, la mina es destruida y el saboteador permanece en el tablero.

Volcanes

Los volcanes están fijos en lugares predeterminados del tablero y sirven como barreras. Son inofensivos y nadie puede moverse a los espacios que ocupan.

Generales

Los generales aparecen como números que indican su rango. El rango más alto es el 5. Los generales vencen a los saboteadores, espías y a otros generales de menor rango. Cuando un general ataca a otro del mismo rango, el atacante siempre es el vencedor. Si un general se mueve a una mina atómica, el general siempre es destruido.

Los generales de rango 5 tienen una debilidad particular. Si son atacados por un saboteador, ¡el saboteador es el que gana! Sin embargo, si un general de rango 5 ataca a un saboteador, el general es el ganador. Hay que notar que un saboteador sólo puede vencer a un general de rango 5. Si un saboteador ataca a, o es atacado por, cualquier general de otro rango, el general siempre gana.

Espías

Los espías sirven para exponer la identidad de todas las fichas enemigas en los ocho espacios que lo rodean de forma inmediata. Cuando atacan, sólo pueden destruir otros espías o saboteadores. Los espías pierden al atacar cualquier otra ficha, y mueren cuando cualquier ficha los ataca.

La figura de abajo muestra a un espía moviéndose al lado de algunas fichas enemigas e identificándolas:

El espía también revela la identidad de una ficha enemiga cuando está estacionaria y la otra ficha se mueve a un espacio junto a ella:

Una vez delatada la identidad de una ficha, ésta quedará en lo sucesivo descubierta en el tablero del oponente.

Saboteadores

Cuando atacan, los saboteadores sólo pueden destruir generales de rango 5, espías y otros saboteadores. Si un saboteador ataca a otro general (de rango 4 o inferior), el saboteador muere. Los saboteadores también mueren cuando son atacados por cualquier ficha.

Cuando un saboteador se mueve a una mina atómica, la mina es desactivada (removida del tablero) y el saboteador permanece en el tablero.