Ejemplo de un juego de Mahjong

Examen 02: Mahjong

Mahjong es uno de los juegos más populares de China. Consiste en encontrar parejas entre un cúmulo de fichas apiladas arbitrariamente. En cada turno sólo se puede jugar con las fichas que estén libres, es decir, no cubiertas o "prensadas" por otras fichas adyacentes. Para hacer una pareja simplemente se hace clic sobre una ficha libre y luego otro clic sobre otra ficha idéntica que también debe estar libre. Utilizando como punto de partida el escenario Mahjong.zip, implemente su propia versión con Greenfoot. Las siguientes son las reglas del juego.

  1. Las fichas pertenecen a 4 palos (bambú, discos, caracteres y por simplificación: fichas especiales). Para simplificar las reglas, cada palo tiene 9 fichas y asuma que de cada ficha hay 4 réplicas, es decir, 4 * 9 * 4 = 144 fichas (72 parejas). La casa desordena las 144 fichas y las ubica en la mesa de juego distribuyéndolas aleatoriamente. (Ya esta funcionalidad está implementada en el escenario dado).
  2. El jugador necesita tener noción de su progreso en el juego. Provea un marcador en el escenario que indique la cantidad de parejas que ha logrado encontrar el jugador.
  3. El jugador selecciona la primera ficha haciendo clic sobre ella. Si la ficha no está libre, se debe indicar con un efecto sonoro. Por el contrario, si la ficha está libre se resalta como seleccionada y se provee un efecto sonoro de un "clic" efectivo.
  4. El jugador selecciona la segunda ficha. Si la segunda ficha no está libre se indica con efecto sonoro. Si la ficha está libre y tiene no tiene el mismo valor que la primera ficha, no forma pareja, y se indica el fallo con un efecto sonoro sin resaltar la segunda ficha.
  5. Si la segunda ficha está libre y coincide en valor con la primera ficha, formarán una pareja, se incrementa el contador (marcador) de parejas. Se elogia al jugador por su logro con un sonido de éxito. Nota: evite que al hacer dos veces clic sobre una misma ficha se tome como una pareja "válida" de la ficha consigo misma.
  6. Al encontrar una pareja, ambas fichas son removidas del montículo de fichas. El jugador necesita ver que las fichas son retiradas del escenario y no que desaparecen mágicamente. Anime el retiro de las fichas haciéndolas moverse hacia uno de los extremos del escenario, donde finalmente desaparecerán.
  7. Supóngase que el jugador ha seleccionado una primera ficha y no encuentra una pareja libre para esa ficha. El jugador necesita "deseleccionar" la primera ficha. Esto se puede lograr haciendo clic sobre la ficha ya seleccionada.
  8. Si el jugador ha logrado encontrar la totalidad de las parejas, se ambienta con un sonido de juego completado y se detiene la ejecución del juego.
  9. El principal problema que impide al jugador completar una sesión de Mahjong es que el juego se bloquee por falta de jugadas posibles. Esto ocurre cuando una ficha cubre a su pareja, sea directamente o transitivamente a través de otras fichas. El juego debe ser capaz de darse cuenta cuando se ha bloqueado y tomar una decisión, por ejemplo, automáticamente reubicar las fichas en la mesa de Mahjong.

Evaluación

Criterio Descripción 0. Inexistente 1. Deficiente 2. Aceptable 3. Excelente Peso
0. Escenario y actores Construye el escenario. Establece o dibuja la imagen de fondo. Crea los actores iniciales y los ubica en sus posiciones de partida, de tal forma que el juego pueda iniciar apropiadamente. El escenario y los actores iniciales no son suficientes para realizar el juego. El juego puede iniciar con lo creado pero es poco lo que se puede jugar. No se ha creado el escenario completo o todos los actores, pero se puede jugar. El escenario y los actores están completos y en sus posiciones para el juego. 0%
1. Reglas del juego Todo juego es una actividad lúdica que tiene un objetivo y reglas. Los juegos por computadora deben implementar estrictamente estas reglas para que el juego pueda "ser jugado" y evitar que los jugadores hagan trampa. Se implementó de 0% a un 14% (una regla o menos en un juego de 7 reglas) De un 15% a un 49% (de 1 a 3 reglas) De un 50% a un 84% (de 3 a casi 6 reglas) Más de un 85% (6 reglas o más) 25%
2. Calidad Los defectos en el juego frustran al jugador, incluso pueden convertir al programa en algo no jugable. Por ejemplo, en un juego de memoria al hacer dos o más clics sobre una misma carta, si esta desaparece, permitirá al jugador que lo descubra ganar "haciendo trampa". El juego tiene más de 4 errores de funcionalidad El juego tiene 2 o 3 errores de funcionalidad El juego tiene un error de funcionalidad El juego no tiene errores de funcionalidad 25%
3. Efectos de sonido Un videojuego sin sonido es un juego sin vida. Los sonidos dan confirmación auditiva de eventos en el videojuego. Se utilizan cada vez que el jugador produce una entrada, cuando ocurre un evento de éxito, de fallo, se incrementa el marcador, y cuando culmina el juego, por citar algunos ejemplos. También se utilizan como música de fondo. El juego: Reproduce ningún sonido. Reproduce únicamente un sonido acorde al evento que lo genera. Reproduce dos sonidos acordes a los eventos que los genera Reproduce tres o más sonidos acordes a los eventos que los genera. 10%
4. Marcadores El jugador necesita conocer su progreso en la consecución de los objetivos del juego. Normalmente se proveen marcadores de nivel, de puntaje, de enemigos restantes, o de tiempo. Se debe diseñar con cuidado las funciones que calculan el puntaje que obtiene el jugador de acuerdo a los eventos que alcanza. No retroalimenta al jugador con algún marcador. Implementa al menos un marcador pero no realiza su trabajo adecuadamente. Implementa al menos un marcador pero falla en algunas situaciones ocasionales. Implementa al menos un marcador. Se actualiza cada vez que el jugador obtiene un éxito. No se actualiza o decrece en caso de fallo. 10%
5. Situación de victoria En todo juego el jugador persigue un objetivo, y cuando este se alcanza es una situación de victoria. El videojuego debe hacer claro que se ha alcanzado esta situación, con gráficas, animaciones, sonidos y otros recursos. Además se detiene el juego y se da oportunidad de iniciar una nueva sesión. No se implementa una situación de victoria. Se detiene el juego ante la situación de victoria. Se detiene el juego y se reproduce un sonido de juego completado. Se detiene el juego, se reproduce un sonido de juego completado y se provee alguna retroalimentación visual. 10%
6. Buenas prácticas de programación Porcentaje de las veces que utiliza identificadores significativos, inicialización de variables, correcto manejo de referencias, asignación de responsabilidades entre las clases, divide las tareas en métodos, protege los miembros de la clase (acceso público o privado). Menos del 15% De 15% a 49% De 50% a 84% Más del 85% 10%
7. Documentación Porcentaje de clases, métodos, variables y "código complicado" que tienen una documentación clara y útil. Menos del 15% De 15% a 49% De 50% a 84% Más del 85% 5%
8. Indentación Porcentaje de código cuya indentación ayuda a comprender su estructura. Menos del 15% De 15% a 49% De 50% a 84% Más del 85% 5%
9. Funcionalidad adicional Tablas de marcadores (high scores), animaciones, decisiones aleatorias, etc. Cualquier funcionalidad que haga al videojuego más atractivo o emocionante. Debe reportarse en el README.txt del escenario de Greenfoot. Se implementó menos de un 15% de lo prometido. De 15% a 49% De 50% a 84% Más del 85% ≤20%

Para presentar su solución, comprima su escenario de Greenfoot y súbalo a Mediación Virtual en la asignación con nombre Examen02 (reposición).