KneRodri / Guess-the-number

0 stars 0 forks source link

Hito 5: Herencia y polimorfismo. #5

Open KneRodri opened 3 months ago

KneRodri commented 3 months ago

Objetivos:

Desafíos:

Transformar la clase Player a una clase abstracta y crear las clases AIPlayer y HumanPlayer (derivadas) para representar diferentes tipos de jugadores, implementando la lógica de adivinación específica para cada tipo mediante herencia y polimorfismo.

Características de la clase Player.

 1. Ahora es una clase abstracta.
 2. Las propiedades son públicas.
 3. Se agrega una propiedad de tipo **List** para almacenar las predicciones realizadas.
 4. El constructor es **protected**, y recibe como parámetro un nombre, además de inicializar la lista.
 5. El método de adivinación (**MakeGuess( )** ) ahora es abstracto.

Características de la clase AIPlayer.

 1. Implementa la clase abstracta **Player**.
 2. Propiedad privada que nos permita generar un número aleatorio.
 3. Implementación del método de adivinación **(MakeGuess( ))** que devuelve un número aleatorio.

Características de la clase HumanPlayer.

 1. Implementa la clase abstracta **Player**.
 2. Implementación del método de adivinación **(MakeGuess( ))** que pregunta a la usuaria por un número.

Características de la clase Game.

1. Ahora tiene 2 propiedades nuevas: **_humanPlayer** y **_AIPlayer** de tipo **Player**.
2. Su constructor inicializa estas nuevas variables además de el número aleatorio.
3. El método para inicializar el juego, ahora además se encarga de gestionar los turnos, permitiendo el turno de la jugadora y mostrando la adivinación realizada por la compu **(_AIPlayer.MakeGuess( ))**.