Τα Booleans στη C# αντιπροσωπεύονται από τον τύπο bool, του οποίου οι τιμές μπορούν να είναι είτε true είτε false.
Η C# υποστηρίζει τρεις τελεστές Boolean: ! (ΟΧΙ), && (ΚΑΙ), και || (Ή).
Σε αυτή την άσκηση, θα υλοποιήσεις τη λογική της αποστολής για ένα νέο παιχνίδι RPG που αναπτύσσει ένας φίλος σου.
Η βασική ηρωίδα του παιχνιδιού είναι η Annalyn, ένα γενναίο κορίτσι με έναν άγριο και πιστό σκύλο. Δυστυχώς, όμως, συμβαίνει μια καταστροφή: ο καλύτερός της φίλος απήχθη ενώ έψαχνε για μούρα στο δάσος.
Η Annalyn θα προσπαθήσει να βρει και να ελευθερώσει τον καλύτερό της φίλο, παίρνοντας προαιρετικά μαζί της τον σκύλο της σε αυτή την αποστολή.
Αφού πέρασε λίγο καιρό ακολουθώντας τα ίχνη του καλύτερού της φίλου, βρίσκει τον καταυλισμό όπου κρατείται αιχμάλωτος ο φίλος της. Αποδεικνύεται ότι υπάρχουν δύο απαγωγείς: ένας ισχυρός ιππότης και ένας πονηρός τοξότης.
Έχοντας βρει τους απαγωγείς, η Annalyn σκέφτεται ποιες από τις παρακάτω ενέργειες μπορεί να κάνει:
Έχεις τέσσερις εργασίες: να υλοποιήσεις τη λογική που καθορίζει αν οι παραπάνω ενέργειες είναι διαθέσιμες με βάση την κατάσταση των τριών χαρακτήρων που βρίσκονται στο δάσος και αν ο σκύλος της Annalyn είναι παρών ή όχι.
Υλοποίησε τη μέθοδο (static) QuestLogic.CanFastAttack() που δέχεται μια Boolean (λογική τιμή) που δείχνει αν ο ιππότης είναι ξύπνιος. Η μέθοδος επιστρέφει true αν μπορεί να γίνει γρήγορη επίθεση με βάση την κατάσταση του ιππότη. Διαφορετικά, επιστρέφει false:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Υλοποίησε τη μέθοδο (static) QuestLogic.CanSpy() που δέχεται τρεις Boolean τιμές, που δείχνουν αν ο ιππότης, ο τοξότης και ο αιχμάλωτος, αντίστοιχα, είναι ξύπνιοι. Η μέθοδος επιστρέφει true αν μπορεί να κατασκοπευτεί η ομάδα, με βάση την κατάσταση των τριών χαρακτήρων. Διαφορετικά, επιστρέφει false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Υλοποίησε τη μέθοδο (static) QuestLogic.CanSignalPrisoner() που δέχεται δύο Boolean τιμές, που δείχνουν αν ο τοξότης και ο αιχμάλωτος, αντίστοιχα, είναι ξύπνιοι. Η μέθοδος επιστρέφει true αν μπορεί να δοθεί σήμα στον αιχμάλωτο, με βάση την κατάσταση των δύο χαρακτήρων. Διαφορετικά, επιστρέφει false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Υλοποίησε τη μέθοδο (static) QuestLogic.CanFreePrisoner() που δέχεται τέσσερις Boolean τιμές. Οι τρεις πρώτες παράμετροι δείχνουν αν ο ιππότης, ο τοξότης και ο αιχμάλωτος, αντίστοιχα, είναι ξύπνιοι. Η τελευταία παράμετρος δείχνει αν ο σκύλος της Annalyn είναι παρών. Η μέθοδος επιστρέφει true αν μπορεί να ελευθερωθεί ο αιχμάλωτος με βάση την κατάσταση των τριών χαρακτήρων και την παρουσία του σκύλου της Annalyn. Διαφορετικά, επιστρέφει false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.