Я пытаюсь создать очень простое приложение для практики умножения, в котором пользователь выбирает таблицу умножения, которую он хочет практиковать, и приложение создает проблемы умножения для этой таблицы, используя случайно сгенерированное целое число от 1 до 20. Затем я хочу дать пользователь ответ.
Проблема, с которой я сталкиваюсь, заключается в том, что случайно сгенерированное число изменяется между моим кодом для отображения вопроса и моим кодом для отображения ответа. Я уверен, что есть простое решение, но я его не вижу.
Как сохранить случайно сгенерированный номер для использования в двух местах в моем коде? Или как выборочно остановить случайное рандомизирование?
Вот мой текущий код:
struct test: View {
@State private var multiplicationTable = 1
var body: some View {
VStack {
Spacer()
Text("Pick the multiplication table you'd like to practice!")
.bold()
.fontWeight(.bold)
.font(.title)
.multilineTextAlignment(.center)
Stepper(value: $multiplicationTable, in: 1...12, step: 1) {
Text("\(multiplicationTable)'s")
}
Text("Let's go!")
Spacer()
Text("Question #1: \(numberForText(multiplier1: multiplicationTable).text1)")
Text("Answer: \(numberForText(multiplier1: multiplicationTable).text2)")
Spacer()
}
.padding(.leading, 20)
.padding(.trailing, 20)
}
func numberForText(multiplier1: Int) -> (text1: String, text2: String) {
let multiplier2 = Int.random(in: 1..<21)
return ("What is \(multiplier1) times \(multiplier2)?", "\(multiplier1) times \(multiplier2) = \(multiplier1 * multiplier2)")
}
}
Спасибо.