class Tda
def initialize(width=0, height=0)
if((width==0) && width<height)
raise NotImplementedError,
“(#{width}) width Tda cannot have a height.”
else
@tda = Array.new(width).map!{ Array.new(height) }
end
end
def width?
return @tda.size
end
def height?
if(width?>0)
return @tda[0].size
else
return nil
end
end
#–Returns the dimensional size (x x y) as a string
def size
[email protected]
if(width?>0)
h = @tda[0].size
else
h = 0
end
return "#{w}x#{h}"
end
#–Returns true if both Tda’s have equal widths and heights
def eql_size?(tda)
bool=false
lh=size.split('x')
rh=tda.size.split('x')
if(lh[0]==rh[0])
bool=true
end
if(lh[1]==rh[1])
bool=true
else
bool=false
end
return bool
end
end
This is what I’ve got so far, but I can’t seem to figure out how to
write methods for: copying a Tda to another Tda, and indexing the Tda.
Thanks for the help!
Justin To wrote:
class Tda
def initialize(width=0, height=0)
if((width==0) && width<height)
raise NotImplementedError,
“(#{width}) width Tda cannot have a height.”
else
@tda = Array.new(width).map!{ Array.new(height) }
end
end
def width?
return @tda.size
end
def height?
if(width?>0)
return @tda[0].size
else
return nil
end
end
#–Returns the dimensional size (x x y) as a string
def size
[email protected]
if(width?>0)
h = @tda[0].size
else
h = 0
end
return "#{w}x#{h}"
end
#–Returns true if both Tda’s have equal widths and heights
def eql_size?(tda)
bool=false
lh=size.split('x')
rh=tda.size.split('x')
if(lh[0]==rh[0])
bool=true
end
if(lh[1]==rh[1])
bool=true
else
bool=false
end
return bool
end
end
This is what I’ve got so far, but I can’t seem to figure out how to
write methods for: copying a Tda to another Tda, and indexing the Tda.
Thanks for the help!
I haven’t tried this, but this method might help -
def copy_tda(original_array)
new_tda = []
original_array.each_index do |i|
new_a = []
original_array[i].each_index { |j| new_a <<
original_array[i][j].clone }
new_tda << new_a
end
return new_tda
end
On Fri, Jun 27, 2008 at 5:23 PM, Justin To [email protected] wrote:
This is what I’ve got so far, but I can’t seem to figure out how to
write methods for: copying a Tda to another Tda, and indexing the Tda.
Marshal.dump and Marshal.load might help you.
Todd
Hi –
On Sat, 28 Jun 2008, Justin To wrote:
if(lh[1]==rh[1])
bool=true
else
bool=false
end
return bool
end
See Ara Howard’s advice about using narray. Still – I just wanted to
suggest one or two things to make this method more concise and clear.
One thing you could do is:
def eql_size?(tda)
lh=size.split(‘x’)
rh=tda.size.split(‘x’)
return lh[0] == rh[0] && lh[1] == rh[1]
end
In general, it’s good to let the comparison methods, like ==, do their
thing, which is to produce true and false. There’s usually no need to
store and test the results separately.
Moreover, in this particular case, I think you could just do:
def eql_size?(tda)
size == tda.size
end
David
On Jun 27, 2008, at 4:23 PM, Justin To wrote:
end
if(lh[0]==rh[0])
end
end
This is what I’ve got so far, but I can’t seem to figure out how to
write methods for: copying a Tda to another Tda, and indexing the Tda.
Thanks for the help!
Posted via http://www.ruby-forum.com/.
gem install narray
it’s this and much much more - not to mention insanely fast.
a @ http://codeforpeople.com/