> @tileArray = Array.new()
> @height.times {@tileArray.push Array.new(@width, Tile.new)}

@height.times {@tileArray.push Array.new{@width, Tile.new}}
                                        ^                ^

As always, when you need to initialize an array with new objects per
cell (rather than references to the same object) use the block form.
You had initialized the first array correctly, but must have mistyped
for the inner array creation :-)