Track
/
Go
Go
/
Esercizi
/
Magia animale
Magia animale

Magia animale

Esercizio di apprendimento

Introduzione

Il pacchetto math/rand fornisce supporto per generare numeri pseudo-casuali.

Ecco come generare un numero intero casuale tra 0 e 99:

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

La funzione rand.Float64 restituisce un numero in virgola mobile casuale tra 0.0 e 1.0:

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

C'è anche il supporto per mescolare una slice (o altre strutture dati):

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]
})

Semi

Le sequenze di numeri generate dal pacchetto math/rand non sono veramente casuali. Dato un valore di «seme» specifico, i risultati sono del tutto deterministici.

In Go 1.20+ il seme viene scelto automaticamente a caso, quindi vedrai una sequenza diversa di numeri casuali ogni volta che esegui il programma.

Nelle versioni precedenti di Go, il seme era 1 per impostazione predefinita. Quindi, per ottenere sequenze diverse nelle varie esecuzioni del programma, dovevi impostare manualmente il seme del generatore di numeri casuali, ad esempio con l'ora corrente, prima di ottenere numeri casuali.

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

Istruzioni

Elaine sta lavorando a un nuovo gioco per bambini con animali e bacchette magiche. È il momento di scrivere funzioni per lanciare un dado, generare l'energia casuale di una bacchetta e mescolare una slice.

1. Lancia un dado

Implementa una funzione RollADie.

Sarà il tradizionale dado a venti facce, con numeri da 1 a 20.

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

2. Genera l'energia della bacchetta

Implementa una funzione GenerateWandEnergy. L'energia della bacchetta deve essere un numero in virgola mobile casuale maggiore o uguale a 0.0 e minore di 12.0.

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

3. Mescola una slice

Il gioco presenta otto animali diversi:

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

Scrivi una funzione ShuffleAnimals che restituisce una slice con gli otto animali in ordine casuale.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Go Exercism

Vuoi iniziare Magia animale?

Iscriviti a Exercism per imparare e padroneggiare Go con 34 concetti165 esercizi e il mentoring di persone reali, tutto gratis.