替换嵌套数组ruby中的元素
我很难找到代码中的问题所在。如果特定元素出现在宾果游戏板上,我想将其替换为“X”:替换嵌套数组ruby中的元素,ruby,nested,Ruby,Nested,我很难找到代码中的问题所在。如果特定元素出现在宾果游戏板上,我想将其替换为“X”: class BingoBoard def initialize(board) @bingo_board = board end def number_letter @letter = ['B','I','N','G','O'].sample @number = rand(1..100) end def checker @number @bing
class BingoBoard
def initialize(board)
@bingo_board = board
end
def number_letter
@letter = ['B','I','N','G','O'].sample
@number = rand(1..100)
end
def checker
@number
@bingo_board.map! do |n|
if n.include?(@number)
n.map! { |x| x == @number ? 'X' : x}
else
n
end
end
end
end
这是我用来检查我的代码是否正在运行的测试,但是X从来没有出现过,我已经检查了我的代码很多次了,但我不知道为什么…:
board = [[47, 44, 71, 8, 88],
[22, 69, 75, 65, 73],
[83, 85, 97, 89, 57],
[25, 31, 96, 68, 51],
[75, 70, 54, 80, 83]]
new_game = BingoBoard.new(board)
new_game.checker
如果有人能提供我所错过或没有看到的东西的见解,我将不胜感激 你从不用字母法打电话。在您的checker方法中,@number始终为零。@menelik tucker谢谢!这就是我所错过的,总是一些小事同样值得注意的是,这看起来并不是一个宾果棋盘,因为列1将被限制为值1..15,所以更好的棋盘初始化应该是这样的。Array.new5{| column | column_Array=column*15+1..column+1*15.to_a.shuffle;Array.new5{column_Array.pop}转置。这将产生一个不重复的准确宾果游戏板。此外,随机数的范围应为rand1..75,因为75是标准宾果棋盘的最大值。
class BingoBoard
def initialize(board)
@bingo_board = board
end
def number_letter
@letter = ['B','I','N','G','O'].sample
@number = rand(1..100)
end
def checker
number_letter
@bingo_board.each do |n|
index = n.index(@number)
n[index] = 'X' unless index.nil?
end
end
end