class AiClassGame
def calculate_cpuNum(sum)
if sum <= 79
cpuNum = 80 - sum
elsif sum <= 88
cpuNum = 89 - sum
else
cpuNum = 100 - sum
end
#puts 'calculate method'
end
calculate_cpuNum是我收到调用错误的方法
if sum >= 71
calculate_cpuNum(sum)
else
sum += cpuNum
checkPlayer = false
puts 'sum = ' + sum.to_s
break if sum >= 100
end
puts 'Computer has choosen : ' + cpuNum.to_s, 'sum = ' + sum.to_s
end
我收到错误
ai_class_game.rb:39 in <class:AiClassGame>: undefined methodcalculate_cpuNum` for AiClassGame:Class (NoMethodError)from ai_class_game.rb:7:in `<main>`
答案 0 :(得分:2)
您将calculate_cpuNum
定义为AiClassGame
类的实例方法。但是,调用方法的代码直接写在类主体中 - 而不是在实例方法中。
您可以从类体中调用(没有显式接收器)的唯一方法是类方法。实例方法只能从同一个类的其他方法调用,或者使用my_ai_class_game_object.calculate_cpuNum
在给定类的对象上调用它们。
我还应该指出,直接在类体中编写代码是非常不寻常的。
您在代码中遇到的另一个无关错误是您在cpuNum
方法之外使用calculate_cpuNum
变量。 cpuNum
是一个局部变量,不能在您定义它的方法之外使用。