二维数组插值 Ruby
2D Array Interpolation Ruby
我正在创建一个命令行连接四个游戏,其中的棋盘是用代表列和行的二维数组创建的。我使用以下代码创建数组
@board = Array.new(6) {Array.new(7, " ")}
我正在使用插值法为四连胜游戏创建视觉效果。 @board 中每个子数组中的每个元素都使用如下插值表示为 "cell",但它一直给我一个 'undefined method `[]' for nil:NilClass' 错误。
puts " #{@board[0][5]} | #{@board[1][5]} | #{@board[2][5]} | #{@board[3][5]} | #{@board[4][5]} | #{@board[5][5]} | #{@board[6][5]}"
这只是董事会的一排。我如何访问子数组中的元素,以便它可以使用插值显示在我的板上?我想使用插值的原因是这些值会随着游戏的进行而改变,并且它们一开始都是空白的。如果我从 @board[][] 标注中删除其中一个 [],它会在 "cell" 中打印出一整行,这不是我想要的。任何帮助表示赞赏!
您 @board
数组包含 6 个数组,每个数组中有 7 个空白字符串。数组索引从 0
开始计数,这意味着您的外部数组将 return 索引 0
到 5
处的内部数组
代码示例中的最后一个字符串插值如下所示:#{@board[6][5]}
。问题是 @board[6]
不存在并且 returns nil
和 nil
不响应 [5]
。
我正在创建一个命令行连接四个游戏,其中的棋盘是用代表列和行的二维数组创建的。我使用以下代码创建数组
@board = Array.new(6) {Array.new(7, " ")}
我正在使用插值法为四连胜游戏创建视觉效果。 @board 中每个子数组中的每个元素都使用如下插值表示为 "cell",但它一直给我一个 'undefined method `[]' for nil:NilClass' 错误。
puts " #{@board[0][5]} | #{@board[1][5]} | #{@board[2][5]} | #{@board[3][5]} | #{@board[4][5]} | #{@board[5][5]} | #{@board[6][5]}"
这只是董事会的一排。我如何访问子数组中的元素,以便它可以使用插值显示在我的板上?我想使用插值的原因是这些值会随着游戏的进行而改变,并且它们一开始都是空白的。如果我从 @board[][] 标注中删除其中一个 [],它会在 "cell" 中打印出一整行,这不是我想要的。任何帮助表示赞赏!
您 @board
数组包含 6 个数组,每个数组中有 7 个空白字符串。数组索引从 0
开始计数,这意味着您的外部数组将 return 索引 0
到 5
代码示例中的最后一个字符串插值如下所示:#{@board[6][5]}
。问题是 @board[6]
不存在并且 returns nil
和 nil
不响应 [5]
。