# Class Estadistica

java.lang.Object
Modelo.Estadistica

public class Estadistica extends Object
Clase que representa las estadísticas de una partida jugada. Almacena la información relativa a una partida incluyendo datos del jugador, el juego jugado, la puntuación obtenida, el resultado de la partida y la fecha. Esta clase proporciona métodos para acceder a los datos de la estadística y convertirlos a diferentes formatos (CSV para almacenamiento y texto para visualización).

Version:
  2.0
Author:
  JP-Aceves, Juan Carlos

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `private LocalDate`
  `fecha`
  La fecha en que se jugó la partida
  `private String`
  `nombreJuego`
  El nombre del juego que se jugó
  `private int`
  `puntuacion`
  La puntuación obtenida en la partida
  `private String`
  `username`
  El nombre de usuario del jugador que participó en la partida
  `private boolean`
  `victoria`
  Indica si la partida fue ganada (true) o perdida (false)

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Estadistica(String username, String nombreJuego, int puntuacion, boolean victoria, LocalDate fecha)`
  Construye una nueva estadística de partida con los datos especificados.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `LocalDate`
  `getFecha()`
  Obtiene la fecha en que se jugó la partida.
  `String`
  `getNombreJuego()`
  Obtiene el nombre del juego que se jugó.
  `int`
  `getPuntuacion()`
  Obtiene la puntuación obtenida en la partida.
  `String`
  `getUsername()`
  Obtiene el nombre de usuario del jugador.
  `boolean`
  `isVictoria()`
  Obtiene el resultado de la partida.
  `String`
  `toArchivo()`
  Convierte la estadística a formato CSV para almacenamiento en archivo.
  `String`
  `toString()`
  Devuelve una representación textual de la estadística para mostrar en pantalla.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### username

    private String username
    El nombre de usuario del jugador que participó en la partida

  - ### nombreJuego

    private String nombreJuego
    El nombre del juego que se jugó

  - ### puntuacion

    private int puntuacion
    La puntuación obtenida en la partida

  - ### victoria

    private boolean victoria
    Indica si la partida fue ganada (true) o perdida (false)

  - ### fecha

    private LocalDate fecha
    La fecha en que se jugó la partida

- ## Constructor Details

  - ### Estadistica

    public Estadistica(String username, String nombreJuego, int puntuacion, boolean victoria, LocalDate fecha)
    Construye una nueva estadística de partida con los datos especificados.
    Parameters:
      `username` - el nombre de usuario del jugador
      `nombreJuego` - el nombre del juego jugado
      `puntuacion` - la puntuación obtenida en la partida
      `victoria` - true si la partida fue ganada, false si fue perdida
      `fecha` - la fecha en que se jugó la partida

- ## Method Details

  - ### getUsername

    public String getUsername()
    Obtiene el nombre de usuario del jugador.
    Returns:
      el nombre de usuario como String

  - ### getNombreJuego

    public String getNombreJuego()
    Obtiene el nombre del juego que se jugó.
    Returns:
      el nombre del juego como String

  - ### getPuntuacion

    public int getPuntuacion()
    Obtiene la puntuación obtenida en la partida.
    Returns:
      la puntuación como int

  - ### isVictoria

    public boolean isVictoria()
    Obtiene el resultado de la partida.
    Returns:
      true si la partida fue ganada, false si fue perdida

  - ### getFecha

    public LocalDate getFecha()
    Obtiene la fecha en que se jugó la partida.
    Returns:
      la fecha como `LocalDate`

  - ### toArchivo

    public String toArchivo()
    Convierte la estadística a formato CSV para almacenamiento en archivo. La fecha se serializa automáticamente a formato ISO (yyyy-MM-dd) mediante `LocalDate.toString()`. El formato de la línea es: username;nombreJuego;puntuacion;victoria;fecha
    Returns:
      una línea en formato CSV con todos los datos de la estadística

  - ### toString

    public String toString()
    Devuelve una representación textual de la estadística para mostrar en pantalla. El formato de la salida es: Usuario: <username> | Juego: <nombreJuego> | Puntuación: <puntuacion> | Resultado: <resultado> | Fecha: <fecha> Donde el resultado muestra:
    - "VICTORIA, Enhorabuena" si la partida fue ganada
    - "DERROTA, Sigue intentandolo" si la partida fue perdida
    Overrides:
      `toString` in class `Object`
    Returns:
      una representación textual formateada de la estadística