我正在为年龄较小的孩子第一次学习数学制作ARKit游戏(使用Swift 4)。我需要设置一组函数来生成随机的简单数学问题。我知道如何完成数字生成,但是尝试也生成数学运算符(+,-,%,*)却是一个挑战。
我最初考虑使用一个数组,将每个运算符作为字符串调用,但我需要将值传递到实际问题中,以便知道正确的答案。
它所要做的就是生成一个案例,在该案例中,我可以将两个变量放入一个问题中。
var num1 = 0
var num2 = 0
qLabel.text = "\(question)"
num1 = Int.random(in: 0.. < 10)
num2 = Int.random(in: 0.. < 10)
if (operator is a +) {
question = "\(num1) + \(num2)"
answer = (num1 + num2)
}
有人可以帮我找到解决方法吗?
答案 0 :(得分:0)
没有“魔术子弹”。为了向用户展示,您需要从运算符列表中随机选择字符串,例如["+", "-"]
,通过在列表中生成随机索引。对于实际计算,您将必须测试它是哪个字符串并写出相应的计算。
答案 1 :(得分:0)
一种方法是为每个运算符分配一个数字:
let operator = Int.random(in: 0..<4)
let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
switch operator {
case 0: question = "\(number1) + \(number2)"
case 1: question = "\(number1) - \(number2)"
case 2: question = "\(number1) / \(number2)"
case 3: question = "\(number1) * \(number2)"
}
看到这是为小孩准备的,当您提出问题时,您可能会变得聪明一点。使用上述类似的简单方法可能会导致出现“ 5/3”之类的问题,这可能会使一些不知道十进制数字的孩子感到困惑。因此,您可能应该将将每种类型的问题生成自己的case
的逻辑。
对于减法问题,您可以先检查哪个更大。然后适当地排列它们,以免结果为负数。
对于除法问题,您可以生成两个数字,并使用两个数字的乘积除以一个数字来产生一个问题。这样,您可以保证整数解。像这样:
let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
let product = number1 * number2
question = "\(product) / \(number1)"