[ARRAYS] Bidimensional Arrays? (opened)

Hi there!

I’m just new at ruby and I have a weird issue probably really dumb but i
just haven’t been able to figure it out.

Using arrays in C or whatever i could define an array using to indexing
numbers, in order to simulate a chess board or whatever…

board = array[8,8]

And then store info in that array like this

board[1,1] = whatever.

I just can’t get that to work in ruby! Why? How can i do it?

Thx

On 11/14/06, Flaab M. [email protected] wrote:

And then store info in that array like this

board[1,1] = whatever.

I just can’t get that to work in ruby! Why? How can i do it?

The ruby Array class is always a one dimensional array. You can create
an array of arrays to get two dimensional behavior.

ary = Array.new(3) {|idx| Array.new(3)}
ary[0][0] = 1

To make the indexing a little more clear

tmp =ary[0] # give me the row at index 0
tmp[0] = 1 # set the value at column 0 of row 0 to 1 (since
tmp is really row 0)

But usually you can just glom all that together like so …

ary[0][0] = 1
ary[0][1] = 2
ary[0][2] = 3

I hope this answers your question.

TwP

Flaab M. wrote:

And then store info in that array like this

board[1,1] = whatever.

I just can’t get that to work in ruby! Why? How can i do it?

Thx

The easiest way to define a multidimensional array in Ruby is to define
an array of arrays:

board = Array.new(8) { Array.new(8) }

Run “ri Array.new” to read about how to create and initialize arrays.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs