Forum: Ruby Strange two dimensional array behaviour

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Dd4a3018f3ba74d275b8dd01cef5967f?d=identicon&s=25 Zsolnai Csaba (kanesoban)
on 2009-04-30 21:54
This code is supposed to read in a 9x9 table (sudoku table) from a
simple text file. It then needs to write it out on the screen.

#read from file

def puzzle_beolvas fnev
f = File.new(fnev,"r")
  puzzle = Array.new(9){[]}
  for i in (1..9)
  puzzle[i] = Array.new(9)
  end
  i = 1

  f.each do |sor|
    j = 1
    sor.each do |str|
      puzzle[i][j] = str
      j = j + 1
    end
    #print "\n"
  i = i + 1
  end
f.close

#Write out the 2 dimensional array

  for i in (1..9)
    for j in (1..9)
      print puzzle[i][j]
      print " "
    end
    print "\n"
  end

end

#the program does this for every file, whose name is given as an
argument

ARGV.each do |a|
puzzle_beolvas a
end


So, the output should be something like this:

6 1 5 4 2 9 3 8 7
4 7 2 8 5 3 1 6 9
3 9 8 1 7 6 2 4 5
7 4 6 2 3 1 5 9 8
5 2 1 9 8 4 6 7 3
9 8 3 7 6 5 4 1 2
8 6 7 5 4 2 9 3 1
1 5 4 3 9 7 8 2 6
2 3 9 6 1 8 7 5 .

Instead, i get this:

6 1 5 4 2 9 3 8 7
 nil nil nil nil nil nil nil nil
4 7 2 8 5 3 1 6 9
 nil nil nil nil nil nil nil nil
3 9 8 1 7 6 2 4 5
 nil nil nil nil nil nil nil nil
7 4 6 2 3 1 5 9 8
 nil nil nil nil nil nil nil nil
5 2 1 9 8 4 6 7 3
 nil nil nil nil nil nil nil nil
9 8 3 7 6 5 4 1 2
 nil nil nil nil nil nil nil nil
8 6 7 5 4 2 9 3 1
 nil nil nil nil nil nil nil nil
1 5 4 3 9 7 8 2 6
 nil nil nil nil nil nil nil nil
2 3 9 6 1 8 7 5 .
 nil nil nil nil nil nil nil nil
6 1 5 4 2 9 3 8 7



Any ideas, why ?
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2009-04-30 22:24
(Received via mailing list)
On Apr 30, 2009, at 3:54 PM, Zsolnai Csaba wrote:

>    print "\n"
>  end
>
> end
<snip>
>
> Any ideas, why ?
> --


Arrays index from 0. A 9-element array has indexes from 0..8

-Rob

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
This topic is locked and can not be replied to.