Διαδρομές
/
Julia
Julia
/
Ασκήσεις
/
Η παρείσφρηση της Annalyn
Η παρείσφρηση της Annalyn

Η παρείσφρηση της Annalyn

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

Εισαγωγή

Boolean (λογικές τιμές) στην Julia

Οι αληθείς ή ψευδείς τιμές αναπαρίστανται από τον τύπο Bool. Περιέχει μόνο δύο τιμές: true και false.

julia> true
true

julia> false
false

Τελεστές Boolean

Υπάρχουν τρεις τελεστές Boolean στη Julia.

Το && είναι το Boolean "και". Αξιολογείται σε true αν οι εκφράσεις και στις δύο πλευρές του && είναι true.

julia> true && true
true

julia> true && false
false

Το || είναι το Boolean "ή". Αξιολογείται σε true αν μια έκφραση σε οποιαδήποτε από τις δύο πλευρές του || είναι true.

julia> true || true
true

julia> false || true
true

Το ! είναι το Boolean "όχι". Αντιστρέφει τις τιμές true και false.

julia> !true
false

julia> !false
true

Για μεγαλύτερες και πιο σύνθετες εκφράσεις, το καλύτερο είναι να χρησιμοποιείς παρενθέσεις, ώστε να γίνεται σαφής η πρόθεσή σου.

julia> (true || false) && (false && true)
false

Οδηγίες

Σε αυτή την άσκηση, θα γράψεις λίγη λογική για ένα βιντεοπαιχνίδι που αναπτύσσει ένας φίλος σου. Η κεντρική ηρωίδα του παιχνιδιού είναι η Annalyn, ένα γενναίο κορίτσι με ένα άγριο και πιστό σκυλί. Δυστυχώς, τα πράγματα παίρνουν άσχημη τροπή, καθώς η καλύτερή της φίλη απάγεται ενώ ψάχνει για μούρα στο δάσος. Η Annalyn θα προσπαθήσει να βρει και να ελευθερώσει τη φίλη της, παίρνοντας προαιρετικά μαζί της το σκυλί της σε αυτή την αποστολή.

Τελικά, η Annalyn βρίσκει το στρατόπεδο στο οποίο κρατείται η φίλη της και αποδεικνύεται ότι οι απαγωγείς είναι δύο: ένας πανίσχυρος ιππότης και ένας πανούργος τοξότης.

Στον παίκτη δίνονται κάποιες επιλογές για το τι μπορεί να κάνει στη συνέχεια. Για καθεμία από τις τέσσερις πιθανές επιλογές, χρειάζεται να γράψεις μια συνάρτηση που λέει στο παιχνίδι αν πρέπει να εμφανίζει αυτή την επιλογή ή όχι.

1. Έλεγξε αν πρέπει να εμφανίζεται η επιλογή "Γρήγορη επίθεση"

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

Υλοποίησε μια συνάρτηση με το όνομα can_do_fast_attack που παίρνει μια τιμή Boolean, η οποία δείχνει αν ο ιππότης είναι ξύπνιος. Η συνάρτηση επιστρέφει true αν η ενέργεια "Γρήγορη επίθεση" είναι διαθέσιμη με βάση την κατάσταση του χαρακτήρα. Διαφορετικά, επιστρέφει false:

julia> knight_awake = true

julia> can_do_fast_attack(knight_awake)
false

2. Έλεγξε αν πρέπει να εμφανίζεται η επιλογή "Κατασκοπεία"

Μπορείς να κατασκοπεύσεις την ομάδα αν τουλάχιστον ένα μέλος της είναι ξύπνιο. Διαφορετικά, η κατασκοπεία είναι χάσιμο χρόνου.

Υλοποίησε μια συνάρτηση με το όνομα can_spy που παίρνει τρεις τιμές Boolean, οι οποίες δείχνουν αν ο ιππότης, ο τοξότης και η φυλακισμένη, αντίστοιχα, είναι ξύπνιοι. Η συνάρτηση επιστρέφει true αν η ενέργεια "Κατασκοπεία" είναι διαθέσιμη με βάση την κατάσταση των χαρακτήρων. Διαφορετικά, επιστρέφει false:

# Output suppressed from the next 3 lines
julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false

julia> can_spy(knight_awake, archer_awake, prisoner_awake)
true

3. Έλεγξε αν πρέπει να εμφανίζεται η επιλογή "Σήμα στη φυλακισμένη"

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

Υλοποίησε μια συνάρτηση με το όνομα can_signal_prisoner που παίρνει δύο τιμές Boolean, οι οποίες δείχνουν αν ο τοξότης και η φυλακισμένη, αντίστοιχα, είναι ξύπνιοι. Η συνάρτηση επιστρέφει true αν η ενέργεια "Σήμα στη φυλακισμένη" είναι διαθέσιμη με βάση την κατάσταση των χαρακτήρων. Διαφορετικά, επιστρέφει false:

julia> archer_awake = false
julia> prisoner_awake = true

julia> can_signal_prisoner(archer_awake, prisoner_awake)
true

4. Έλεγξε αν πρέπει να εμφανίζεται η επιλογή "Ελευθέρωση της φυλακισμένης"

Η Annalyn μπορεί να προσπαθήσει να μπει κρυφά στο στρατόπεδο για να ελευθερώσει τη φίλη της. Αυτό είναι ριψοκίνδυνο και μπορεί να πετύχει μόνο με έναν από τους δύο παρακάτω τρόπους:

  • Αν η Annalyn έχει μαζί της το σκυλί της, μπορεί να σώσει τη φυλακισμένη αν ο τοξότης κοιμάται. Ο ιππότης φοβάται το σκυλί και ο τοξότης δεν θα προλάβει να ετοιμαστεί προτού η Annalyn και η φίλη της το σκάσουν.

  • Αν η Annalyn δεν έχει μαζί της το σκυλί, τότε εκείνη και η φυλακισμένη πρέπει να το κάνουν πολύ στα κρυφά! Η Annalyn μπορεί να ελευθερώσει τη φυλακισμένη αν εκείνη είναι ξύπνια και ο ιππότης και ο τοξότης κοιμούνται και οι δύο, αλλά αν η φυλακισμένη κοιμάται, δεν μπορεί να σωθεί: θα τρομάξει από την ξαφνική εμφάνιση της Annalyn και θα ξυπνήσει τον ιππότη και τον τοξότη.

Υλοποίησε μια συνάρτηση με το όνομα can_free_prisoner που παίρνει τέσσερις τιμές Boolean. Οι τρεις πρώτες παράμετροι δείχνουν αν ο ιππότης, ο τοξότης και η φυλακισμένη, αντίστοιχα, είναι ξύπνιοι. Η τελευταία παράμετρος δείχνει αν το σκυλί της Annalyn είναι παρόν. Η συνάρτηση επιστρέφει true αν η ενέργεια "Ελευθέρωση της φυλακισμένης" είναι διαθέσιμη με βάση την κατάσταση των χαρακτήρων. Διαφορετικά, επιστρέφει false:

julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false
julia> dog_present = false

julia> can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present)
false
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Julia Exercism

Έτοιμος να ξεκινήσεις την άσκηση Η παρείσφρηση της Annalyn;

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