如何在Ruby中制作可操作的数字网格

我想在Ruby中创建一个数字网格,提供这样的输出(不完全,但是关闭):

0 1 2 3 4 5 6 7 8 9 ------------------ 1 | 2 | 3 | 4 | 5 | 6 | 

其中空格(坐标点)用随机数填充。 我还需要它可操作(例如,我可以很容易地找到一个点的值,给定它的坐标并改变它)。 我一直在尝试使用数组,但还没有找到一个很好的方法将它组合在一起。 如何使用Ruby以高效的方式执行此操作?

非常感谢!

更新:我有一个像这样的数组:

  $array = [ # 0 1 2 3 4 5 6 7 8 ['O', '-',' -','-', '-', '-', '-', '-', '-'], #0 ['|', 'x','x','x', 'x', 'x', 'x', 'x', 'x'], #1 ['|', 'x','x','x', 'x', 'x', 'x', 'x', 'x'], #2 ['|', 'x','x','x', 'x', 'x', 'x', 'x', 'x'], #3 ] 

如何以友好的方式展示它?

好的尝试这个(请参阅以前的答案编辑,但这个是我觉得最好的):

 grid = [ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], [2, 3, 4, 5, 6, 7, 8, 9, 0, 1], [3, 4, 5, 6, 7, 8, 9, 0, 1, 2], [4, 5, 6, 7, 8, 9, 0, 1, 2, 3], [5, 6, 7, 8, 9, 0, 1, 2, 3, 4], [6, 7, 8, 9, 0, 1, 2, 3, 4 ,5] ] #prints first row and dashed line r1 = grid[0] f1 = grid[0][0] print f1 print " " r1.shift print r1.join(" ") r1.unshift(f1) puts "" puts " ------------------" #Prints all other rows grid.shift grid.each do |r| f = r[0] print f print " | " r.shift print r.join(" ") r.unshift(f) puts end 

输出:

 0 1 2 3 4 5 6 7 8 9 ------------------ 1 | 2 3 4 5 6 7 8 9 0 2 | 3 4 5 6 7 8 9 0 1 3 | 4 5 6 7 8 9 0 1 2 4 | 5 6 7 8 9 0 1 2 3 5 | 6 7 8 9 0 1 2 3 4 6 | 7 8 9 0 1 2 3 4 5