#!/usr/bin/ruby -w class ThreeDArray def initialize(maxx, maxy) @maxx, @maxy = maxx, maxy @content = [] # this is where I'll keep the actual content end def index(x, y, z) ((x * @maxx) + y) * @maxy + z end def [](x, y, z) @content[index(x, y, z)] end def []=(x, y, z, newVal) @content[index(x, y, z)] = newVal end end a = ThreeDArray.new(3, 3) for i in 0..2 for j in 0..2 for k in 0..2 a[i, j, k] = i * j * k end end end for i in 0..2 for j in 0..2 for k in 0..2 printf "%4d", a[i, j, k] end puts end puts end