Tracks
/
Go
Go
/
Ejercicios
/
Magia animal
Magia animal

Magia animal

Ejercicio de aprendizaje

Introducción

El paquete math/rand ofrece soporte para generar números pseudoaleatorios.

Así se genera un número entero aleatorio entre 0 y 99:

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

La función rand.Float64 devuelve un número de punto flotante aleatorio entre 0.0 y 1.0:

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

También hay soporte para barajar un slice (u otras estructuras de datos):

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

Semillas

Las secuencias de números que genera el paquete math/rand no son verdaderamente aleatorias. Dado un valor de «semilla» específico, los resultados son totalmente deterministas.

En Go 1.20 y posteriores, la semilla se elige automáticamente al azar, así que verás una secuencia de números aleatorios distinta cada vez que ejecutes tu programa.

En versiones anteriores de Go, la semilla era 1 de forma predeterminada. Así que, para obtener secuencias distintas en cada ejecución del programa, tenías que sembrar manualmente el generador de números aleatorios, por ejemplo con la hora actual, antes de obtener cualquier número aleatorio.

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

Instrucciones

Elaine está trabajando en un nuevo juego para niños que incluye animales y varitas mágicas. Ya es hora de programar funciones para lanzar un dado, generar energía aleatoria para las varitas y mezclar un slice.

1. Lanza un dado

Implementa una función RollADie.

Este será el dado tradicional de veinte caras con números del 1 al 20.

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

2. Genera energía para las varitas

Implementa una función GenerateWandEnergy. La energía de la varita debe ser un número de punto flotante aleatorio igual o mayor que 0.0 y menor que 12.0.

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

3. Mezcla un slice

El juego incluye ocho animales diferentes:

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

Escribe una función ShuffleAnimals que devuelva un slice con los ocho animales en orden aleatorio.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Go Exercism

¿Todo listo para empezar Magia animal?

Regístrate en Exercism para aprender y dominar Go con 34 conceptos165 ejercicios y mentoría humana real, todo gratis.