Ruby 可以通过组合两个范围来创建嵌套数组吗?

Ruby 可以通过组合两个范围来创建嵌套数组吗?,ruby,Ruby,我目前正在创建一个国际象棋游戏,我正在为每个棋子设置一个数组,其中包含它们的合法移动集。例如,主教只能沿对角线移动,因此移动集必须为以下内容才能沿左对角线向上移动 [[-1, -1], [-2, -2] ...repeated... [-7, -7], [-8, -8]] 有没有一种方法可以创建一个具有两个范围的嵌套数组,而不是每个方向都有长长的代码行 例如: 合并两个枚举 (-8..-1).zip(-8..-1).reverse # => [[-1, -1], [-2, -2],

我目前正在创建一个国际象棋游戏,我正在为每个棋子设置一个数组,其中包含它们的合法移动集。例如,主教只能沿对角线移动,因此移动集必须为以下内容才能沿左对角线向上移动

[[-1, -1], [-2, -2] ...repeated... [-7, -7], [-8, -8]]
有没有一种方法可以创建一个具有两个范围的嵌套数组,而不是每个方向都有长长的代码行

例如:

合并两个枚举

(-8..-1).zip(-8..-1).reverse
  # => [[-1, -1], [-2, -2], [-3, -3], [-4, -4], [-5, -5], [-6, -6], [-7, -7], [-8, -8]]

也许是OT,但你可以用不同的方法获得相同的结果,这对其他棋子也有帮助

例如:

(1..8).map { |n| [-n, -n] }
#=> [[-1, -1], [-2, -2], [-3, -3], [-4, -4], [-5, -5], [-6, -6], [-7, -7], [-8, -8]]
或者:

8.times.map { |n| [-n-1, -n-1] }
#=> [[-1, -1], [-2, -2], [-3, -3], [-4, -4], [-5, -5], [-6, -6], [-7, -7], [-8, -8]]

你有没有考虑过下面这样的事情<代码>def bishop_移动(行、列);diff=列-行;(0..7).每个带有对象([])的对象都是do | r,a |;下一步,如果r==行;c=r+diff;例如,
bishop_moves(2,4)
bishop_moves(4,2)
bishop_moves(4,2)=>Cary Swoveland 6小时前删除
8.times.map { |n| [-n-1, -n-1] }
#=> [[-1, -1], [-2, -2], [-3, -3], [-4, -4], [-5, -5], [-6, -6], [-7, -7], [-8, -8]]