El tema es que ruby no tiene arrays con doble indice, pero como contrapartida 
podes "indexar" cualquier cosa dentro de un array. Por ejemplo, podes indexar 
un array dentro de otro array:

a= []; a << 1 << 2 << 3           ==> a == [1, 2, 3]
b= []; b << 4 << 5 << 6           ==> b == [4, 5, 6]
c= []; c= << a << b;                ==> c == [[1, 2, 3],[4, 5, 6]]

c[0][0] == a[0] == 1
c[1][0] == b[0] == 4

etc...

Tambien podes hacer algo "oldschool" :) como esta clase:

class Matriz
    def initialize (x, y)
        throw "Dimensiones invalidas" if (x * y) == 0 
        @xsize= x
        @ysize= y
        @values= Array.new(x * y)
    end
    
    def setValue(x, y, v)
        @values[y * @ysize + x]= v
    end
    
    def getValue(x, y)
        @values[y * @ysize + x]
    end
    
    def each
        y, x= 0, 0
        @values.each do |v|
            yield v, x, y
            if (x+= 1) >= @xsize
                x= 0; y+= 1
            end
        end
    end
end

a= Matriz.new(2, 2)

a.setValue 0, 0, 1
a.setValue 0, 1, 2
a.setValue 1, 0, 3
a.setValue 1, 1, 4

a.each do |v, x, y| 
    puts "Y: #{y} X: #{x} V: #{v}"
end


Rafael Bidegain <[EMAIL PROTECTED]> escribió: El 7/05/07, Ignacio Avellaneda  
escribió:
> Hola. Soy medio nuevo en Ruby y quiero crear una matriz de orden
> definido por el usuario.

probá esto:


def mi_arry(x,y, valor)
 matriz = Array.new(y)
 for i in (0..(y-1))
  matriz[i]  = Array.new(x,valor)
 end

 matriz
end

z = mi_arry(3,4,5)

z.each {|y|
 y.each {|value|
  print "#{value} "
 }
 print "\n"
}
-- 
/* Rafael Bidegain
Linux Registered User # 204304
CaFeLUG Grupo de Usuarios de Software Libre de Capital Federal
http://www.cafelug.org.ar */
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar


       
---------------------------------
 Preguntá. Respondé. Descubrí.
 Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
 Probalo ya! 
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a