Skip to content

Releases: eduvives/SnakeGame

Snake Game Edu v5

29 May 07:27

Choose a tag to compare

Icono personalizado en la ventana principal del juego

  • Se añade un icono representativo a la ventana principal para mejorar la identidad visual de la aplicación.
  • El icono se carga desde los recursos del proyecto y se muestra en la barra de título.

Snake Game Edu v4

17 Oct 11:24
9ba10c0

Choose a tag to compare

Nueva funcionalidad de Ventana Ampliada:

Es posible ampliar o reducir el tamaño de la ventana para una visibilidad más cómoda del juego en todas las dificultades de tablero.

  • Haciendo doble clic sobre la ventana del juego, esta se redimensiona en función del tamaño actual.
  • Hay dos tamaños: El inicial (650 x 650) y el ampliado. En el ampliado la altura de la ventana ocupa un 92% de la pantalla disponible (sin contar los Instets del sistema operativo como barra de tareas etc...).

Snake Game Edu v3

16 Oct 07:18

Choose a tag to compare

Nuevo Modo Shrink implementado:

  • El panel de puntuación más alta (high score) se muestra solo si el modo actual es diferente de Classic, permitiendo así que el usuario conozca su "high score" en todo momento al jugar el modo Shrink, ocultando el panel solo en el modo Classic siempre y cuando no haya un "high score" previo.

  • Con la incorporación del nuevo modo Shrink, ahora en el procesamiento de nuevos inputs del usuario se diferencia entre la dirección en que apunta la serpiente y la dirección en que se dirige la serpiente, para que en caso de colisión la serpiente no pueda ir en direcciones incoherentes (opuesta a su cuerpo...).

Inputs de reserva para colisión Shrink:

  • Añadida gestión y procesamiento de inputs de reserva (no válidos) del usuario al estar el modo Shrink activo, para que en caso de colisión todos los nuevos inputs que el usuario haya introducido hasta ese momento sean revalidados y solo se procese el último input válido, de este modo el usuario puede corregir la dirección más rápidamente.

Mejorada la implementación y gestión del tipo de celda (mayor seguridad de tipo y legibilidad)

  • Se diferencia entre el tipo general de celda y el tipo específico de celda, de este modo aumenta la seguridad del código y lo hace más fácil de leer y mantener.

  • Se verifica si un tipo específico de celda es válido (si el tipo específico de celda pertenece al tipo general de celda indicado) al crear el Square o modificar su tipo específico de celda.

Otras mejoras

  • Corregidos bugs en la combinación de Boundless + Cheese.

  • Se han revisado todos los TODOs y comentarios.

  • Código de test eliminado.

Snake Game Edu v2

16 Oct 06:28

Choose a tag to compare

Snake Game Edu v2 Pre-release
Pre-release

Nuevos estilos de color seleccionables:

  • Añadidos 3 botones de cambio de estilo (paleta de colores) del juego:

    • Se puede cambiar la paleta de Board, Food y Snake.
    • Se puede interactuar con los botones para cambiar el estilo de color del juego solo mientras el juego no se haya iniciado, es decir, mientras el usuario no haya introducido un primer input iniciando así el loop del juego (timer) y el movimiento de la serpiente. Al iniciar el juego los botones se deshabilitan hasta que la partida finaliza y, por tanto, se muestra el menú principal.
  • La lectura de inputs de usuario del teclado se deshabilita y habilita en función de si hay una partida activa, para evitar que el panel del juego reciba eventos de teclado e inicie una nueva partida sin que el usuario lo haya indicado explícitamente clicando el botón de inicio de partida.

  • Corregido que las variables que gestionan y proporcionan los colores del controlador a la vista mantengan un orden interno para mostrar los colores en orden y que no se muestren superpuestos en orden incorrecto. Para ello se ha sustituido el uso de HashMap por LinkedHashMap.

Snake Game Edu v1

16 Oct 06:13

Choose a tag to compare

Snake Game Edu v1 Pre-release
Pre-release

Lógica del juego implementada:

  • Incluye los modos de juego: Classic, Wall, Cheese, Boundless, Twin, Statue, Dimension, Peaceful y Blender.

  • Lectura y procesamiento de los inputs de usuario:

    • Las acciones de movimiento pueden realizarse con las flechas del teclado o las teclas W A S D.

    • Cada acción crea un nuevo input. Estos inputs se guardan y procesan con una lista de máximo 2 inputs.

    • Los inputs no válidos (dirección opuesta o igual a la previa) se ignoran. De este modo evitamos añadir los inputs que no generaran ningún cambio de dirección y nos aseguramos que la lista de inputs solo está ocupada por inputs válidos.

    • En caso de introducir un nuevo input estando la lista llena, este remplazará al último input, siempre que cumpla los requisitos para ser un input válido en relación con la dirección previa.

    • Estas elecciones en el procesamiento de los inputs permiten una jugabilidad más rápida, fluida y fiable.

  • El juego finalizará al detectar una colisión o la condición de festín (no hay más posiciones disponibles donde colocar comida).

  • Si el usuario presiona la tecla "ESCAPE" el juego finaliza y se muestra el menú de fin de partida, de este modo puede finalizar el juego en cualquier momento sin verse obligado a perder o ganar la partida.

Interfaz gráfica creada y enlazada con la lógica del juego:

  • Tablero de juego: Donde se representan la serpiente, la comida y los elementos de modos específicos (Wall, Statue...).

  • Menú superior: Indica la puntuación actual (score) y la puntuación máxima (high score).

  • Menú principal: Muestra la puntuación final de la partida y la puntuación máxima (high score). Además, permite iniciar partida, cambiar la configuración de partida y salir del juego.

  • Configuración de partida: Permite modificar los aspectos de la partida referentes al tamaño de tablero, velocidad de la serpiente, número de frutas y modo de juego. También dispone de opciones para aleatorizar las selecciones, restablecer los valores por defecto e iniciar una nueva partida.

  • Configuración del modo Blender: Permite seleccionar los modos que se desean combinar en la siguiente partida. Incluye opciones para aleatorizar las selecciones (con diferentes probabilidades de seleccionar entre 2 y 4 modos), restablecer la selección por defecto (siendo esta la selección aleatoria) e iniciar una nueva partida.

Sistema de High Scores:

  • La puntuación más alta (high score) se guarda para cada partida jugada.

  • Las puntuaciones se diferencian según la configuración del juego (board, speed, food, mode). En caso del modo Blender también se diferencian según los modos seleccionados para estar activos en Blender.

  • Las puntuaciones se guardan en un archivo creado automáticamente, cada una con su identificador para saber a qué configuración de juego pertenecen. Sobreescribiéndose en caso de superar la puntuación más alta en esa misma configuración. Por tanto, habrá una entrada en el archivo, es decir, un registro de la puntuación más alta, para cada combinación de ajustes jugada (también combinado con cada combinación jugada de modos en Blender).

  • El panel de high score en la parte superior de la vista principal solo es visible si se ha hecho algún high score previo con esa configuración de partida, es decir, si high score es superior a 0 al inicio de la partida. En caso de no estar visible eso indicaría que el score actual (cuadrado rojo) representa también el high score.