Ruby 转置5x5数组时出现索引错误
给定以下“宾果板”阵列: 然后运行以下方法查看是否有宾果游戏:Ruby 转置5x5数组时出现索引错误,ruby,arrays,transpose,Ruby,Arrays,Transpose,给定以下“宾果板”阵列: 然后运行以下方法查看是否有宾果游戏: def bingo(board) if board.each_index {|e| board[e].uniq!} .any? {|row| row == ["X"]} == true p "BINGO!" elsif board = board.transpose board.each_index {|e| board[e].uniq!} .any? {|row| row == ["X"]} ==
def bingo(board)
if board.each_index {|e| board[e].uniq!} .any? {|row| row == ["X"]} == true
p "BINGO!"
elsif
board = board.transpose
board.each_index {|e| board[e].uniq!} .any? {|row| row == ["X"]} == true
p "BINGO!"
elsif (board[0][0] && board[1][1] && board[2][2] && board[3][3] && board[4][4]) == "X"
p "BINGO!"
elsif board[0][4] && board[1][3] && board[2][2] && board[3][1] && board[4][0] == "X"
p "BINGO!"
else
p "no bingo"
end
end
我遇到以下错误:
`transpose': element size differs (5 should be 4) (IndexError)
有什么好处?为什么它认为5是4?我相信你的第二行,运行
板[e]。uniq
以破坏性方式更改原始板中嵌套的每个阵列
阵列。。。因此,每行中不再有五个对象。我相信您的第二行运行的是board[e]。uniq
以破坏性方式更改原始板中嵌套的每个阵列
阵列。。。因此,每行中不再有五个对象。我相信您的第二行运行的是board[e]。uniq
以破坏性方式更改原始板中嵌套的每个阵列
阵列。。。因此,每行中不再有五个对象。我相信您的第二行运行的是board[e]。uniq
以破坏性方式更改原始板中嵌套的每个阵列
阵列。。。因此,每行中不再有五个对象。没有相同的错误,但请检查@Myst answear。与您的问题完全无关,但在您的条件下不需要使用==true
。在Ruby中,除了false
和nil
谢谢@shivam之外,所有的东西都是正确的。这还是个新鲜事。myst是正确的,这就是问题所在。但是现在没有宾果游戏的棋盘正在评估为宾果游戏,所以其他的东西是错误的哈哈。没有同样的错误,但是请检查@Myst answear。与您的问题完全无关,但是在您的情况下没有必要使用==true
。在Ruby中,除了false
和nil
谢谢@shivam之外,所有的东西都是正确的。这还是个新鲜事。myst是正确的,这就是问题所在。但是现在没有宾果游戏的棋盘正在评估为宾果游戏,所以其他的东西是错误的哈哈。没有同样的错误,但是请检查@Myst answear。与您的问题完全无关,但是在您的情况下没有必要使用==true
。在Ruby中,除了false
和nil
谢谢@shivam之外,所有的东西都是正确的。这还是个新鲜事。myst是正确的,这就是问题所在。但是现在没有宾果游戏的棋盘正在评估为宾果游戏,所以其他的东西是错误的哈哈。没有同样的错误,但是请检查@Myst answear。与您的问题完全无关,但是在您的情况下没有必要使用==true
。在Ruby中,除了false
和nil
谢谢@shivam之外,所有的东西都是正确的。这还是个新鲜事。myst是正确的,这就是问题所在。但现在没有宾果游戏的董事会正在评估为宾果游戏,所以其他一些东西是错误的哈哈。
`transpose': element size differs (5 should be 4) (IndexError)