---
# System prepended metadata

title: Casos de Uso

---

## Diagrama
![image](https://hackmd.io/_uploads/Hy8HX2_nA.png)

## Actores
Jugador

## Listado CU
CU-01 CU-01 Dar la opcion de configurar modalidad de pelea
CU-02 Inicia la pelea
CU-03 Dar control sobre el personaje
CU-04 Mostrar datos de pelea en historial
CU-05 Mostrar Leaderboard


## Plantillas

### Dar la opción de configurar modalidad de pelea
| CU-01               | Dar la opción de configurar modalidad de pelea
| ------------------- | --
| **Actores**         | Jugador
| **Propósito**       | Definir valores que dictarán la modalidad de la pelea
| **Precondición**    | No aplica
| **Flujo Principal** | 1. Se presenta pantalla principal con opción de iniciar una pelea. <br> 2. Al ingresar se presenta pantalla de configuración de pelea. <br> 3. Se ingresa nombre de Jugador1. <br> 4. Se define el tipo de Jugador1. <br> 5. Se ingresa nombre de Jugador2. <br> 6. Se define el tipo de Jugador2. <br> 7. Se continúa con CU-02.
| **Subflujos**       | 7.1. Si no se ingresa nombre de Jugador1 y es tipo Bot, el sistema rellenará con un nombre predeterminado. <br> 7.2. Si no se ingresa nombre de Jugador2 y es tipo Bot, el sistema rellenará con un nombre predeterminado.
| **Excepciones**     | 7.1. Si no se ingresa nombre de Jugador1 y es tipo Jugador, no se continúa con CU-02 y se exige completar campo dado en paso 3. <br> 7.2. Si no se ingresa nombre de Jugador2 y es tipo Jugador, no se continúa con CU-02 y se exige completar campo dado en paso 3.
| **Comentarios**     | No aplica

### Inicia la pelea
| CU-02               | Inicia la pelea
| ------------------- | --
| **Actores**         | Jugador
| **Propósito**       | Comenzar una pelea
| **Precondición**    | Ambos Personajes deben tener un nombre
| **Flujo Principal** | 1. Se muestra boton para iniciar la pelea. <br> 2. Al presionar boton Iniciar pelea se inicia la pela.
| Subflujos           | No aplica
| Excepciones         | No aplica
| Comentarios         | No aplica

### Dar control sobre el personaje
| CU-03               | Dar control sobre el personaje
| ------------------- | --
| **Actores**         | Jugador
| **Propósito**       | Permitir jugar al usuario
| **Precondición**    | El usuario debe tener un teclado
| **Flujo Principal** | 1. El sistema espera a que el Jugador presione una tecla. <br> 2. Si se presiona una tecla de movimiento el personaje se moverá. <br> 3. Si se presiona una tecla de ataque el personaje atacará. <br> 4. Si se presiona la tecla de escudo, el personaje se cubrirá.
| **Subflujos**       | 2.1. Si se presionan teclas de movimiento contrarias al mismo tiempo el personaje no se moverá. <br> 2.2. Si se presiona la tecla asignada al escudo o una tecla de ataque, el personaje dejará de moverse si lo está haciendo.  <br> 3.1. Si se presionan dos teclas de ataque al mismo tiempo solo se ejecutará la acción que sea registrada antes.
| **Excepciones**     | No aplica
| **Comentarios**     | No aplica

### Mostrar datos de pelea en historial
| CU-04               | Mostrar datos de pelea en historial
| ------------------- | --
| **Actores**         | Jugador
| **Propósito**       | Dar cuenta al usuario de su crecimiento en el juego
| **Precondición**    | No aplica
| **Flujo Principal** | 1. Se presenta en pantalla principal una opción para acceder al historial. <br> 2. Se muestra un cuadro en el que se ingresa un nombre de un usuario. <br> 3. Si el usuario es encontrado se muestra una lista con su historial de peleas.
| **Subflujos**       | 2.1. Si el campo está vacio no se muestra nada <br> 3.1. Si no se encuentra el usuario no se muestra nada.
| **Excepciones**     | No aplica
| **Comentarios**     | No aplica

### Mostrar Leaderboard
| CU-05               | Mostrar Leaderboard
| ------------------- | --
| **Actores**         | Jugador
| **Propósito**       | Dar cuenta de un ranking entre los jugadores registrados en el juego
| **Precondición**    | No aplica
| **Flujo Principal** | 1. Se presenta en pantalla principal una opción para acceder al leaderboard. <br> 2. Se mostrará una lista con todos los jugadores ordenados en función a cuantas partidas han ganado
| **Subflujos**       | 2.1. Si no existe registro de algún jugador la lista se mostrará vacia.
| **Excepciones**     | No aplica
| **Comentarios**     | No aplica
