From: dblack@... Date: 2006-11-15T03:53:39+09:00 Subject: Re: Convert singel dimention array into grid Hi -- On Wed, 15 Nov 2006, Tim Pease wrote: > On 11/14/06, Giant Cranes wrote: >> Hi, >> >> I have been learning ruby for the past week and am completely hooked. >> Most of the code I am producing is elegant (ruby's credit), although I >> am having trouble elegantly converting a single dimension array with 16 >> elements into a two-dimension grid [4x4]. >> >> Here is what I have so far: >> >> @array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] >> @grid = Array.new >> >> i = 0 >> index = 0 >> 0.upto(3) do |i| >> j = 0 >> 0.upto(3) do |j| >> @grid[i] = Array.new if j == 0 >> @grid[i][j] = @array[index] >> index += 1 >> j += 1 >> end >> i += 1 >> end >> >> @grid >> > > Let the golfing commence! > > require 'enumerator' > > @array = (1..16).to_a > @grid = Array.new(4) {|idx| Array.new(4)} > > @array.each_with_index do |val, idx| > @grid[idx/4][idx%4] = val > end Well, if we're golfing: require'enumerator' g=*(1..16).enum_slice(4) David -- David A. Black | dblack@rubypal.com Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3] DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4] [1] http://www.manning.com/black | [3] http://www.rubypowerandlight.com [2] http://dablog.rubypal.com | [4] http://www.rubycentral.org