Tracks
/
C#
C#
/
Ejercicios
/
La infiltración de Annalyn
La infiltración de Annalyn

La infiltración de Annalyn

Ejercicio de aprendizaje

Introducción

Boolean

Los valores Boolean en C# se representan con el tipo bool, que puede tomar los valores true o false.

C# admite tres operadores Boolean: ! (NOT), && (AND) y || (OR).

Instrucciones

En este ejercicio, implementarás la lógica de la misión para un nuevo juego de rol que un amigo está desarrollando.

La protagonista del juego es Annalyn, una chica valiente con un perro mascota feroz y leal. Desafortunadamente, ocurre un desastre: su mejor amigo fue secuestrado mientras buscaba bayas en el bosque.

Annalyn intentará encontrar y liberar a su mejor amigo, pudiendo llevar a su perro con ella en esta misión.

Después de pasar un tiempo siguiendo el rastro de su mejor amigo, encuentra el campamento en el que está prisionero. Resulta que hay dos secuestradores: un poderoso caballero y un astuto arquero.

Habiendo encontrado a los secuestradores, Annalyn considera cuáles de las siguientes acciones puede llevar a cabo:

  • Ataque rápido: se puede hacer un ataque rápido si el caballero está durmiendo, ya que le toma tiempo ponerse la armadura, así que estará vulnerable.
  • Espiar: se puede espiar al grupo si al menos uno de ellos está despierto. De lo contrario, espiar es una pérdida de tiempo.
  • Hacer señales al prisionero: se puede hacer señales al prisionero usando sonidos de aves si el prisionero está despierto y el arquero está durmiendo, ya que los arqueros están entrenados en la señalización con aves, por lo que podrían interceptar el mensaje.
  • Liberar al prisionero: Annalyn puede intentar colarse en el campamento para liberar al prisionero. Esta es una acción arriesgada y solo puede tener éxito de una de dos maneras:
    • Si Annalyn tiene a su perro con ella, puede rescatar al prisionero si el arquero está dormido. El caballero le tiene miedo al perro y el arquero no tendrá tiempo de prepararse antes de que Annalyn y el prisionero puedan escapar.
    • Si Annalyn no tiene a su perro, ¡entonces ella y el prisionero deben ser muy sigilosos! Annalyn puede liberar al prisionero si el prisionero está despierto y el caballero y el arquero están ambos dormidos, pero si el prisionero está dormido no pueden rescatarlo: el prisionero se asustaría por la aparición repentina de Annalyn y despertaría al caballero y al arquero.

Tienes cuatro tareas: implementar la lógica para determinar si las acciones anteriores están disponibles según el estado de los tres personajes que se encuentran en el bosque y si el perro de Annalyn está presente o no.

1. Comprobar si se puede hacer un ataque rápido

Implementa el método (static) QuestLogic.CanFastAttack() que toma un valor Boolean que indica si el caballero está despierto. Este método devuelve true si se puede hacer un ataque rápido según el estado del caballero. De lo contrario, devuelve false:

var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false

2. Comprobar si se puede espiar al grupo

Implementa el método (static) QuestLogic.CanSpy() que toma tres valores Boolean, que indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos. El método devuelve true si se puede espiar al grupo, según el estado de los tres personajes. De lo contrario, devuelve false:

var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

3. Comprobar si se puede hacer señales al prisionero

Implementa el método (static) QuestLogic.CanSignalPrisoner() que toma dos valores Boolean, que indican si el arquero y el prisionero, respectivamente, están despiertos. El método devuelve true si se puede hacer señales al prisionero, según el estado de los dos personajes. De lo contrario, devuelve false:

var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. Comprobar si se puede liberar al prisionero

Implementa el método (static) QuestLogic.CanFreePrisoner() que toma cuatro valores Boolean. Los primeros tres parámetros indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos. El último parámetro indica si el perro de Annalyn está presente. El método devuelve true si se puede liberar al prisionero según el estado de los tres personajes y la presencia del perro de Annalyn. De lo contrario, devuelve false:

var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar La infiltración de Annalyn?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.