Διαδρομές
/
Swift
Swift
/
Ασκήσεις
/
Αποστολή στα φτερά
Αποστολή στα φτερά

Αποστολή στα φτερά

Άσκηση εκμάθησης

Εισαγωγή

Η Swift παρέχει έναν ενσωματωμένο τύπο, γνωστό ως Bool, για να αναπαριστά τιμές αλήθειας: true και false.

Λογικοί τελεστές

Η Swift παρέχει τρεις λογικούς τελεστές (!, && και ||) για να συνδυάζεις και να αξιολογείς Boolean εκφράσεις.

Λογικό ΚΑΙ (&&)

Ο τελεστής και (&&) επιστρέφει true μόνο αν και οι δύο τελεστέοι είναι true. Αν ένας από τους τελεστέους είναι false, επιστρέφει false. Τοποθέτησε μια έκφραση ή μια Boolean τιμή σε κάθε πλευρά του συμβόλου &&:

true && true  // true
true && false // false

Λογικό Ή (||)

Ο τελεστής ή (||) επιστρέφει true αν τουλάχιστον ένας από τους τελεστέους είναι true. Επιστρέφει false μόνο όταν και οι δύο τελεστέοι είναι false. Τοποθέτησε μια έκφραση ή μια Boolean τιμή σε κάθε πλευρά του συμβόλου ||:

true || true   // true
true || false  // true
false || false // false

Λογικό ΟΧΙ (!)

Ο τελεστής όχι (!) αντιστρέφει μια Boolean τιμή. Επιστρέφει true αν η τιμή είναι false και false αν η τιμή είναι true. Τοποθέτησε τον τελεστή ! αμέσως πριν από την τιμή ή την έκφραση:

!true  // false
!false // true

Χρήση παρενθέσεων (())

Μπορείς να χρησιμοποιήσεις παρενθέσεις για να ομαδοποιήσεις εκφράσεις και να ελέγξεις τη σειρά αξιολόγησης. Στη Swift, οι εκφράσεις μέσα σε παρενθέσεις αξιολογούνται πρώτα:

true && false && false || true   // true
true && false && (false || true) // false

Η ομαδοποίηση με παρενθέσεις καθορίζει επίσης πώς εφαρμόζεται ο τελεστής όχι σε σύνθετες εκφράσεις:

!true && false   // false (evaluates (!true) first, then false && false)
!(true && false) // true  (evaluates (true && false) first to false, then !false)
Note

Χρησιμοποίησε παρενθέσεις όταν χρειάζεται να αποσαφηνίσεις τη σειρά αξιολόγησης ή να κάνεις τις σύνθετες συνθήκες πιο ευανάγνωστες. Απόφευγε να προσθέτεις περιττές παρενθέσεις όταν η προεπιλεγμένη προτεραιότητα είναι ήδη σαφής.

Οδηγίες

Βρίσκεσαι στη διαδικασία ανάπτυξης του νέου, πολύ αγαπητού παιχνιδιού Wings Quest. Στο παιχνίδι είσαι ένα πουλί που κινείται τριγύρω και μαζεύει σπόρους. Ο παίκτης κερδίζει όταν μαζέψει όλους τους σπόρους. Αν ο παίκτης έρθει σε επαφή με έναν αετό, τότε θα χάσει όλους τους σπόρους του και θα χάσει το παιχνίδι. Υπάρχει μια εξαίρεση σε αυτόν τον κανόνα: ο παίκτης μπορεί να έχει ένα ενεργό power-up που τον κάνει να πετάει ψηλότερα από τα άλλα πουλιά.

Ο στόχος σου είναι να γράψεις κάποιους κανόνες που θα χρησιμοποιηθούν στο παιχνίδι.

1. Όρισε αν το πουλί παίρνει πόντους μπόνους

Στο παιχνίδι, το πουλί παίρνει πόντους μπόνους αν αγγίξει έναν αετό ενώ έχει ένα power-up.

Όρισε τη συνάρτηση bonusPoints(powerUpActive:touchingEagle:) που παίρνει δύο ορίσματα: το powerUpActive, που δείχνει αν το πουλί έχει ενεργό power-up, και το όρισμα touchingEagle, που δείχνει αν το πουλί αγγίζει έναν αετό. Η συνάρτηση πρέπει να επιστρέφει true μόνο αν το πουλί έχει ενεργό power-up και αγγίζει έναν αετό, αλλιώς false.

bonusPoints(powerUpActive: false, touchingEagle: true)
// Returns false

2. Όρισε αν το πουλί σκοράρει

Στο παιχνίδι, ο παίκτης παίρνει πόντους όταν μαζεύει έναν σπόρο ή ένα power-up.

Όρισε τη συνάρτηση score(touchingPowerUp:touchingSeed:) που παίρνει δύο ορίσματα: το touchingPowerUp, που δείχνει αν το πουλί αγγίζει ένα power-up, και το όρισμα touchingSeed, που δείχνει αν το πουλί αγγίζει έναν σπόρο. Η συνάρτηση πρέπει να επιστρέφει true αν το πουλί αγγίζει ένα power-up ή έναν σπόρο, αλλιώς να επιστρέφει false.

score(touchingPowerUp: true, touchingSeed: true)
// Returns true

3. Όρισε αν το πουλί χάνει

Όρισε τη συνάρτηση lose(powerUpActive:touchingEagle:) που παίρνει δύο ορίσματα: το powerUpActive, που δείχνει αν το πουλί έχει ενεργό power-up, και το όρισμα touchingEagle, που δείχνει αν το πουλί αγγίζει έναν αετό. Η συνάρτηση πρέπει να επιστρέφει true αν ο χαρακτήρας αγγίζει έναν αετό και δεν έχει ενεργό power-up, αλλιώς να επιστρέφει false.

lose(powerUpActive: false, touchingEagle: true)
// Returns true

4. Όρισε αν το πουλί κερδίζει

Όρισε τη συνάρτηση win(hasPickedUpAllSeeds:powerUpActive:touchingEagle:) που παίρνει τα ορίσματα:

  • hasPickedUpAllSeeds αν το πουλί έχει μαζέψει όλους τους σπόρους.
  • powerUpActive αν το πουλί έχει ενεργό power-up.
  • touchingEagle αν το πουλί αγγίζει έναν αετό.

Η συνάρτηση πρέπει να επιστρέφει true αν το πουλί έχει μαζέψει όλους τους σπόρους και δεν έχει χάσει με βάση τα ορίσματα που ορίστηκαν στο μέρος 3, αλλιώς να επιστρέφει false.

win(hasPickedUpAllSeeds: false, powerUpActive: true, touchingEagle: false)
// Returns false
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Swift Exercism

Έτοιμος να ξεκινήσεις την άσκηση Αποστολή στα φτερά;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Swift με 35 έννοιες116 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.