Diferència entre revisions de la pàgina «Proyecto IETI Card Game»

De Wiket
Salta a la navegació Salta a la cerca
Línia 57: Línia 57:
 
<ol>
 
<ol>
 
<li>Se ha de crear un XML que cumpla con la especificación del DTD IETI_Card_Game.DTD facilitado por los profesores. El XML ha de validar contra el DTD y ha de tener un mínimo de 20 cartas que cumplan con las especificaciones de ¿Como crear una carta?</li>
 
<li>Se ha de crear un XML que cumpla con la especificación del DTD IETI_Card_Game.DTD facilitado por los profesores. El XML ha de validar contra el DTD y ha de tener un mínimo de 20 cartas que cumplan con las especificaciones de ¿Como crear una carta?</li>
<li>Se ha de crear un menú que presente las opciones del juego:</li>
+
<li>Se ha de crear un menú que presente las opciones del juego:
 +
<ol>
 +
<li>Cargar cartas</li>
 +
<li>Carga cartas Enemigo</li>
 +
<li>Crear mazo aleatorio</li>
 +
<li>Crear mazo ofensivo</li>
 +
<li>Crear mazo defensivo</li>
 +
<li>Crear mazo equilibrado</li>
 +
<li>Crear mazo aleatorio Enemigo</li>
 +
<li>Crear mazo ofensivo Enemigo</li>
 +
<li>Crear mazo defensivo Enemigo</li>
 +
<li>Crear mazo equilibrado Enemigo</li>
 +
<li>Luchar J vs J</li>
 +
<li>Luchar J vs IA</li>
 +
</ol>
 +
</li>
 
<li></li>
 
<li></li>
 
<li></li>
 
<li></li>

Revisió del 10:48, 31 gen 2020

Introducción

  • IETI Card Game es un juego de cartas fantástico basado en los juegos estilo POKEMON, HEARTHSTONE, etc... El juego permite leer cartas en formato XML, crear mazos y luchar. Las luchas son automáticas siguiendo unas reglas básicas explicadas en un apartado posterior.
  • Cuando inicias la aplicación se te ofrecen las siguientes opciones:
    • Cargar cartas (permite leer un XML con todas las cartas disponibles para crear un mazo)
    • Carga cartas Enemigo (permite leer un XML con todas las cartas disponibles para crear un mazo)
    • Crear mazo aleatorio (selecciona cartas aleatorias de las cartas disponibles hasta llegar a un máximo de 20 puntos de invocación y añade un nombre al mazo)
    • Crear mazo ofensivo (selecciona cartas hasta un máximo de 20 puntos de invocación siendo las cartas con ataque más alto)
    • Crear mazo defensivo (selecciona cartas hasta un máximo de 20 puntos de invocación siendo las cartas con defensa más alta)
    • Crear mazo equilibrado (selecciona cartas hasta un máximo de 20 puntos de invocación siendo la mitad de los puntos las cartas de ataque más alto y la otra mitad las cartas de defensa más alta)
    • Crear mazo aleatorio Enemigo (selecciona cartas aleatorias de las cartas disponibles hasta llegar a un máximo de 20 puntos de invocación y añade un nombre al mazo)
    • Crear mazo ofensivo Enemigo (selecciona cartas hasta un máximo de 20 puntos de invocación siendo las cartas con ataque más alto)
    • Crear mazo defensivo Enemigo (selecciona cartas hasta un máximo de 20 puntos de invocación siendo las cartas con defensa más alta)
    • Crear mazo equilibrado Enemigo (selecciona cartas hasta un máximo de 20 puntos de invocación siendo la mitad de los puntos las cartas de ataque más alto y la otra mitad las cartas de defensa más alta)
    • Luchar J vs J (si existe un mazo propio y un mazo enemigo se produce la lucha y se muestran los resultados)
    • Luchar J vs IA (si existe un mazo propio, se crean 7 jugadores IA con 7 mazos basados en tu propia baraja y se crea una liga eliminatoria. Las luchas se ejecutarán en modo resumen y solo se verá el resultado del ganador)
  • En la fase 1 del proyecto toda la aplicación funciona a través de la consola, por lo tanto las opciones se pintan en la consola y se seleccionan introduciendo el número correspondiente a la opción, en la fase 2 se implementará un apartado visual que permitirá seleccionar estas opciones con botones

por definir

  • crear una "liga"
    • Se crearan varios jugadores y se guardarán los resultados de los enfrentamientos en un fichero ( mostrar resultados del jugador X en el menú)
    • Se creará un fichero con la clasificación ( mostrar clasificación en el menú)
    • Se podrán dejar los enfrentamientos a medias y se podrá recuperar el estado para continuar )
    • Se guardarán los enfrentamientos en un fichero de forma que se podrán reproducir de nuevo.


Definiciones

Cartas

  • Una carta consta de los siguientes atributos:
    • Nombre: Nombre de la carta
    • Descripción: Información sobre el lore de la carta
    • Puntos de invocación: El número de puntos de invocación necesario para jugar esta carta (de 0 a 5)
    • Ataque: El poder de ataque de la carta (de 0 a 5)
    • Defensa:La defensa de la carta (0 a 5)
    • Tipo:El tipo de carta (Infantería, Caballería, Lanceros)

¿Como crear una carta?

  • Para crear una carta se tienen que seguir las siguientes indicaciones:
    • Asignar un nombre a la carta (no puede ser vacío, el nombre no puede tener más de 20 carácteres)
    • Crear una descripción para la carta (no puede ser vacío, la descripción no puede tener más de 60 carácteres)
    • Los puntos de invocación se calculan con la siguiente fórmula (puntos de invocación = (ataque + defensa)
    • Asignar un tipo a la carta (los tipos disponibles son: infanteria, caballeria, lanceros

Reglas del juego

  • Cada jugador tiene 10 puntos de vida
  • La partida se desarrolla por turnos
  • En un turno hay 3 fases: fase de invocación, fase de destino, fase de confrontación
  • Cada jugador tiene 5 puntos de invocación
    • Fase de invocación:
      • Se elige aleatoriamente una carta del mazo del jugador 1, si aun quedan puntos de invocación disponibles se selecciona aleatoriamente una carta del mazo con puntos de invocación disponible, así hasta que al jugador 1 no le queden puntos de invocación.
      • Se repite lo mismo para el jugador 2
    • Fase de destino:
      • Se elige de forma aleatoria que jugador atacará primero
    • Fase de confrontación:
      • El jugador que ataque primero selecciona la primera carta invocada y realiza un ataque a la primera carta invocada del jugador 2 (ataque - defensa) si el ataque supera la defensa la carta defensora es eliminada y los puntos de ataque sobrantes se restan a la vida del jugador, si la defensa supera al ataque no pasa nada. Después se realiza lo mismo con la siguiente carta del jugador que ataca hasta la última carta. Cuando ya se ha atacado con todas las cartas del primer jugador se hace lo mismo con el segundo jugador. Este ciclo se repite hasta que o bien a alguno de los jugadores no le queden cartas invocadas (en este caso volvemos a la fase de invocación y empieza el ciclo de nuevo) o el jugador pierda todos sus puntos de vida (en este caso se acaba la partida).
  • Los tipos de cartas sirven para aplicar modificadores al ataque. Infanteria > lanceros > cabelleria > Infanteria. De manera que si una carta tipo infanteria ataca a otra carta tipo lancero aplica un modificador x2 al ataque

Especificaciones

Especificaciones funcionales

  1. Se ha de crear un XML que cumpla con la especificación del DTD IETI_Card_Game.DTD facilitado por los profesores. El XML ha de validar contra el DTD y ha de tener un mínimo de 20 cartas que cumplan con las especificaciones de ¿Como crear una carta?
  2. Se ha de crear un menú que presente las opciones del juego:
    1. Cargar cartas
    2. Carga cartas Enemigo
    3. Crear mazo aleatorio
    4. Crear mazo ofensivo
    5. Crear mazo defensivo
    6. Crear mazo equilibrado
    7. Crear mazo aleatorio Enemigo
    8. Crear mazo ofensivo Enemigo
    9. Crear mazo defensivo Enemigo
    10. Crear mazo equilibrado Enemigo
    11. Luchar J vs J
    12. Luchar J vs IA

Especificaciones no funcionales

Listado de tareas (backlog)

Fases del proyecto (Sprints)