Διαδρομές
/
JavaScript
JavaScript
/
Ασκήσεις
/
Το ημερολόγιο του καπετάνιου
Το ημερολόγιο του καπετάνιου

Το ημερολόγιο του καπετάνιου

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

Εισαγωγή

Πολλά προγράμματα χρειάζονται (ψευδο)τυχαίες τιμές για να προσομοιώσουν γεγονότα του πραγματικού κόσμου.

Συνήθη, οικεία παραδείγματα είναι:

  • Η ρίψη ενός κέρματος: μια τυχαία τιμή από τις ('H', 'T').
  • Η ρίψη ενός ζαριού: ένας τυχαίος ακέραιος από το 1 έως το 6.
  • Το ανακάτεμα μιας τράπουλας: μια τυχαία διάταξη μιας λίστας καρτών.
  • Η δημιουργία δέντρων και θάμνων σε μια προσομοίωση τρισδιάστατων γραφικών.

Η παραγωγή πραγματικά τυχαίων τιμών με έναν υπολογιστή είναι μια προκλητικά δύσκολη τεχνική πρόκληση, γι' αυτό υπάρχουν και "ψευδοτυχαίοι" γεννήτορες.

Caution

Η συνάρτηση Math.random() ΔΕΝ πρέπει να χρησιμοποιείται για εφαρμογές ασφάλειας και κρυπτογραφίας! Ολοκλήρωσε τη μαθησιακή άσκηση (ή τις ασκήσεις) σχετικά με αυτή την έννοια για να μάθεις περισσότερα

Παραγωγή τυχαίων αριθμών

Στη JavaScript, μπορείς να παράγεις ψευδοτυχαίους αριθμούς χρησιμοποιώντας τη συνάρτηση Math.random(). Θα επιστρέψει έναν ψευδοτυχαίο αριθμό κινητής υποδιαστολής μεταξύ του 0 (συμπεριλαμβανομένου) και του 1 (μη συμπεριλαμβανομένου).

Οδηγίες

Η Mary είναι μεγάλη θαυμάστρια της τηλεοπτικής σειράς Star Trek: The Next Generation. Παίζει συχνά παιχνίδια ρόλων με χαρτί και μολύβι, όπου αυτή και οι φίλοι της υποδύονται το πλήρωμα του Starship Enterprise. Ο χαρακτήρας της Mary είναι ο Captain Picard, που σημαίνει ότι πρέπει να κρατάει το ημερολόγιο του πλοιάρχου. Λατρεύει το δημιουργικό κομμάτι του παιχνιδιού, αλλά δεν της αρέσει να βγάζει τυχαία δεδομένα επιτόπου.

Βοήθησε τη Mary φτιάχνοντας γεννήτριες τυχαίων δεδομένων για στοιχεία που εμφανίζονται συχνά στο ημερολόγιο του πλοιάρχου.

1. Δημιούργησε έναν τυχαίο αριθμό νηολογίου διαστημοπλοίου

Το Enterprise (αριθμός νηολογίου NCC-1701) δεν είναι το μόνο διαστημόπλοιο που πετάει εκεί έξω! Όταν συναντάει άλλο διαστημόπλοιο, η Mary πρέπει να καταγράψει τον αριθμό νηολογίου του.

Οι αριθμοί νηολογίου ξεκινούν με το πρόθεμα "NCC-" και στη συνέχεια έχουν έναν αριθμό από το 1000 έως το 9999 (και τα δύο συμπεριλαμβάνονται).

Υλοποίησε τη συνάρτηση randomShipRegistryNumber() που επιστρέφει έναν τυχαίο αριθμό νηολογίου διαστημοπλοίου.

randomShipRegistryNumber();
// => "NCC-1947"

2. Δημιούργησε μια τυχαία αστρική ημερομηνία

Τι νόημα έχει ένα ημερολόγιο αν δεν περιλαμβάνει ημερομηνίες;

Η αστρική ημερομηνία είναι ένας αριθμός κινητής υποδιαστολής. Οι περιπέτειες του Starship Enterprise από την πρώτη σεζόν του The Next Generation διαδραματίζονται ανάμεσα στις αστρικές ημερομηνίες 41000.0 και 42000.0. Το "4" αντιστοιχεί στον 24ο αιώνα, το "1" στην πρώτη σεζόν.

Υλοποίησε τη συνάρτηση randomStardate που επιστρέφει έναν αριθμό κινητής υποδιαστολής μεταξύ 41000.0 (συμπεριλαμβανομένου) και 42000.0 (μη συμπεριλαμβανομένου).

randomStardate();
// => 41458.15721310934

3. Δημιούργησε έναν τυχαίο πλανήτη

Το Starship Enterprise συναντάει πολλούς πλανήτες στα ταξίδια του. Οι πλανήτες στο σύμπαν του Star Trek χωρίζονται σε κατηγορίες με βάση τις ιδιότητές τους. Για παράδειγμα, η Γη είναι πλανήτης κλάσης M. Όλες οι πιθανές κλάσεις πλανητών είναι: D, H, J, K, L, M, N, R, T, και Y.

Υλοποίησε τη συνάρτηση randomPlanetClass(). Θα πρέπει να επιστρέφει μία από τις κλάσεις πλανητών τυχαία.

randomPlanetClass();
// => "K"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
JavaScript Exercism

Έτοιμος να ξεκινήσεις την άσκηση Το ημερολόγιο του καπετάνιου;

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