[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

NoMethodError ?

Chris Bailey

8/29/2008 1:30:00 AM

In the following code I am trying to print out the value of the
variable @symbol from an array of instances of the MapSector class. I
don't understand why I'm getting "NoMethodError: undefined method
`symbol' for #<Array:0xb7cb025c>" after putting this in irb and typing:
foo = GameMap.new(5,5)
foo.show_map


class GameMap
attr_accessor :height, :width, :id, :sectors
def initialize height, width
@height = height
@width = width
@id = nil
@sectors = Array.new(@height, MapSector.new) {Array.new(@width,
MapSector.new)}
end

def show_map
@sectors.each do |x|
puts x.symbol
end
end

end

class MapSector
attr_accessor :type, :symbol, :players
def initialize
@type = "plains"
@players = []
@symbol = "."
end
end
--
Posted via http://www.ruby-....

2 Answers

Chris Bailey

8/29/2008 2:20:00 AM

0

Chris Bailey wrote:
> In the following code I am trying to print out the value of the
> variable @symbol from an array of instances of the MapSector class. I
> don't understand why I'm getting "NoMethodError: undefined method
> `symbol' for #<Array:0xb7cb025c>" after putting this in irb and typing:
> foo = GameMap.new(5,5)
> foo.show_map



Well I figured out the first half of my problem. I guess my show_map
method was trying to find the symbol variable inside the Array object,
whoops. So I have updated the show_map method to the following.

def show_map
x = 0
y = 0
while x < @height
while y < @width
puts self.sectors[x][y].symbol
y+= 1
end
x += 1
end
end

The problem I am having now is that when the method is run on a 4x4
array of MapSectors it only prints out 4 symbols...it should be 16. I
have verified that the nested arrays are all properly populated so I
guess it just isn't iterating through them properly. Any ideas?
--
Posted via http://www.ruby-....

Chris Bailey

8/29/2008 2:43:00 AM

0

> The problem I am having now is that when the method is run on a 4x4
> array of MapSectors it only prints out 4 symbols...it should be 16. I
> have verified that the nested arrays are all properly populated so I
> guess it just isn't iterating through them properly. Any ideas?

Ok I've gotten it all figured out and working, thank's anyhow! =)



--
Posted via http://www.ruby-....