在方法中使用模运算符时遇到问题
Having trouble using the modulo operator with a method
我有两种方法 turn_count(board) 和 current_player(board)。 turn_count(board) 方法,returns 数组中 "X" 和 "O" 的数量正常工作。但是 current_player(board) 方法,如果 turn_count(board) 是偶数,应该放置 "X" ,如果 turn_count(board) 是奇数,则应该放置 "O"一直给我一个错误。错误是:
/Users/john/Desktop/test file.rb:13:in current_player': undefined method
%' for nil:NilClass (NoMethodError)
来自 /Users/john/Desktop/test file.rb:18:in `'
很明显,它是说正在使用的模运算符存在问题,但我不确定为什么,并且一直在绞尽脑汁试图弄清楚。
非常感谢任何帮助!
def turn_count(board)
count = 0
board.each do |x| if x == "X" || x == "O"
count = count + 1
end
end
puts count
end
def current_player(board)
if turn_count(board) % == 0
puts "X"
else
puts "O"
end
end
问题是您在 NilClass 上使用 %。您的 turn_count() 方法 returns 无。检查如果将 puts count 替换为 count 会发生什么。
我有两种方法 turn_count(board) 和 current_player(board)。 turn_count(board) 方法,returns 数组中 "X" 和 "O" 的数量正常工作。但是 current_player(board) 方法,如果 turn_count(board) 是偶数,应该放置 "X" ,如果 turn_count(board) 是奇数,则应该放置 "O"一直给我一个错误。错误是:
/Users/john/Desktop/test file.rb:13:in current_player': undefined method
%' for nil:NilClass (NoMethodError)
来自 /Users/john/Desktop/test file.rb:18:in `'
很明显,它是说正在使用的模运算符存在问题,但我不确定为什么,并且一直在绞尽脑汁试图弄清楚。
非常感谢任何帮助!
def turn_count(board)
count = 0
board.each do |x| if x == "X" || x == "O"
count = count + 1
end
end
puts count
end
def current_player(board)
if turn_count(board) % == 0
puts "X"
else
puts "O"
end
end
问题是您在 NilClass 上使用 %。您的 turn_count() 方法 returns 无。检查如果将 puts count 替换为 count 会发生什么。