Διαδρομές
/
Go
Go
/
Ασκήσεις
/
Μαγεία των ζώων
Μαγεία των ζώων

Μαγεία των ζώων

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

Εισαγωγή

Το πακέτο math/rand παρέχει υποστήριξη για τη δημιουργία ψευδοτυχαίων αριθμών.

Να πώς μπορείς να δημιουργήσεις έναν τυχαίο ακέραιο μεταξύ 0 και 99:

n := rand.Intn(100) // n is a random int, 0 <= n < 100

Η συνάρτηση rand.Float64 επιστρέφει έναν τυχαίο αριθμό κινητής υποδιαστολής μεταξύ 0.0 και 1.0:

f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0

Υπάρχει επίσης υποστήριξη για το ανακάτεμα ενός slice (ή άλλων δομών δεδομένων):

x := []string{"a", "b", "c", "d", "e"}
// shuffling the slice put its elements into a random order
rand.Shuffle(len(x), func(i, j int) {
	x[i], x[j] = x[j], x[i]
})

Το seed

Οι ακολουθίες αριθμών που παράγει το πακέτο math/rand δεν είναι πραγματικά τυχαίες. Δεδομένης μιας συγκεκριμένης τιμής "seed", τα αποτελέσματα είναι απολύτως ντετερμινιστικά.

Στη Go 1.20+ το seed επιλέγεται αυτόματα τυχαία, οπότε θα βλέπεις μια διαφορετική ακολουθία τυχαίων αριθμών κάθε φορά που εκτελείς το πρόγραμμά σου.

Σε προηγούμενες εκδόσεις της Go, το seed ήταν 1 από προεπιλογή. Έτσι, για να έχεις διαφορετικές ακολουθίες σε κάθε εκτέλεση του προγράμματος, έπρεπε να δώσεις χειροκίνητα ένα seed στη γεννήτρια τυχαίων αριθμών, π.χ. με την τρέχουσα ώρα, πριν πάρεις οποιονδήποτε τυχαίο αριθμό.

rand.Seed(time.Now().UnixNano())

Οδηγίες

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

1. Ρίξε ένα ζάρι

Υλοποίησε μια συνάρτηση RollADie.

Αυτό θα είναι το παραδοσιακό ζάρι με είκοσι πλευρές και αριθμούς από το 1 έως το 20.

d := RollADie() // d will be assigned a random int, 1 <= d <= 20

2. Δημιούργησε ενέργεια ραβδιού

Υλοποίησε μια συνάρτηση GenerateWandEnergy. Η ενέργεια του ραβδιού πρέπει να είναι ένας τυχαίος αριθμός κινητής υποδιαστολής μεγαλύτερος ή ίσος με 0.0 και μικρότερος από 12.0.

f := GenerateWandEnergy()  // f will be assigned a random float64, 0.0 <= f < 12.0

3. Ανακάτεψε ένα slice

Το παιχνίδι περιλαμβάνει οκτώ διαφορετικά ζώα:

  • ant
  • beaver
  • cat
  • dog
  • elephant
  • fox
  • giraffe
  • hedgehog

Γράψε μια συνάρτηση ShuffleAnimals που επιστρέφει ένα slice με τα οκτώ ζώα σε τυχαία σειρά.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Go Exercism

Έτοιμος να ξεκινήσεις την άσκηση Μαγεία των ζώων;

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