Tracks
/
Go
Go
/
Übungen
/
Tiermagie
Tiermagie

Tiermagie

Lernübung

Einführung

Das Paket math/rand unterstützt dich beim Generieren von Pseudozufallszahlen.

So generierst du eine zufällige Ganzzahl zwischen 0 und 99:

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

Die Funktion rand.Float64 gibt eine zufällige Gleitkommazahl zwischen 0.0 und 1.0 zurück:

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

Es gibt auch Unterstützung dafür, ein Slice (oder andere Datenstrukturen) zu mischen:

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

Seeds

Die Zahlenfolgen, die das Paket math/rand generiert, sind nicht wirklich zufällig. Bei einem bestimmten „Seed“-Wert sind die Ergebnisse vollständig deterministisch.

In Go 1.20+ wird der Seed automatisch zufällig gewählt, sodass du bei jedem Programmlauf eine andere Folge von Zufallszahlen siehst.

In früheren Go-Versionen war der Seed standardmäßig 1. Um für verschiedene Programmläufe unterschiedliche Folgen zu erhalten, musstest du den Zufallszahlengenerator vor dem Abrufen von Zufallszahlen manuell mit einem Seed versehen, z. B. mit der aktuellen Uhrzeit.

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

Anleitung

Elaine arbeitet an einem neuen Kinderspiel, in dem Tiere und Zauberstäbe vorkommen. Jetzt ist es Zeit, Funktionen für das Würfeln, das Erzeugen zufälliger Zauberstab-Energie und das Mischen eines Slice zu programmieren.

1. Einen Würfel würfeln

Implementiere eine Funktion RollADie.

Das ist der klassische zwanzigseitige Würfel mit den Zahlen 1 bis 20.

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

2. Zauberstab-Energie erzeugen

Implementiere eine Funktion GenerateWandEnergy. Die Zauberstab-Energie sollte eine zufällige Gleitkommazahl sein, die größer oder gleich 0.0 und kleiner als 12.0 ist.

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

3. Ein Slice mischen

Das Spiel enthält acht verschiedene Tiere:

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

Schreibe eine Funktion ShuffleAnimals, die ein Slice mit den acht Tieren in zufälliger Reihenfolge zurückgibt.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Go Exercism

Bereit, mit Tiermagie zu starten?

Melde dich bei Exercism an, um Go mit 34 Konzepte165 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.