Я ищу, чтобы выбрать случайное число от 1 до 6, но если, например, 1 выбрано программой, я хочу убедиться, что это снова не используется до тех пор, пока не будет выбрано 2-6. Я хочу сделать это, чтобы иметь возможность пройти все варианты вместо того, чтобы иметь один и тот же вариант 2 или, возможно, 3 раза подряд, так как есть только 6 опций. Любые идеи, пожалуйста?Хотите выбрать случайное число и не отобрать его до тех пор, пока все номера не пройдут через
//choose random number for recipe
rand.Seed(time.Now().UTC().UnixNano())
myrand := random(1, 6)
fmt.Println(myrand)
...
функция, которая обрабатывает его
//random number function
func random(min, max int) int {
return rand.Intn(max-min) + min
}
Часть моей программы, которая использует myrand от каждого запуска используется в случае заявления и привязывают к рецепту, который будет выбран в течение дня
//choose random number for recipe
rand.Seed(time.Now().UTC().UnixNano())
myrand := random(1, 6)
fmt.Println(myrand)
//test below of random replacement
list := rand.Perm(6)
for i, _ := range list {
fmt.Printf("%d\n", list[i]+1)
}
//logic for recipe to choose
if myrand == 1 {
fmt.Println(1)
printRecipeOfTheDay(recipe1)
} else if myrand == 2 {
fmt.Println(2)
printRecipeOfTheDay(recipe2)
} else if myrand == 3 {
fmt.Println(3)
printRecipeOfTheDay(recipe3)
} else if myrand == 4 {
fmt.Println(4)
}
}
Мне интересно, если я что-то неправильно делаю? Я не уверен, как я могу использовать список при каждом запуске для генерации нового номера (myrand), и программа сможет запомнить, что было последним числом (myrand), когда оно запускалось в предыдущее время?
Интересно, есть ли пример, на который я могу следовать? – Tbalz
[Здесь] (http://play.golang.org/p/ZIglCQ11AE) - это небольшой пример использования закрытий. – Aedolon
Знаете ли вы, как я могу выбрать одно конкретное значение из списка и прочитать его в переменной, подлежащей обработке? Например, можно ли положить значение 1 в переменную с именем «value1», а затем запустить оператор if else в «value1»? – Tbalz