David,
Thank you so much for the help, that makes a lot of sense. Your code was
much more elegant than mine. It was one of those mind-broadening
moments, haha.
Concerning my own implementation, I think I figured out the problem as
to why it wasn't working. My code was ugly, but the logic (I thought)
was sound. I was doing some more debugging, trying to figure out why it
would only get to six strings of output, then fail. I found it out.
Here, I make my duplicate for my array:
rand_spies = spies.dup
rand_spies.sort_by{ rand }
#perform spying operations...
.
.
.
However, dup copies instance variables over, and it IS a shallow copy,
but if you change an instance variable, based on my debugging, it
changes the original as well. I found this out when (using netbeans) I
put a watch on these variables:
spies[k].found
rand_spies[l].found
spies[k+1].found
rand_spies[l+1].found
I found that, even though my rand_spies array was randomized and shallow
copied, it was still making changes to the original array. I found this
when I saw that the rand_spies[l+1].found was being changed when I found
a match in the spies[l].found
So my question is this: Is there any way to make a shallow copy of an
array of objects, where it passes all the values over, without passing
the reference over? I'm thinking a pass-by-value C++ copy sort of deal.
That's what I need.
Much thanks,
James Rasmussen
--
Posted via http://www.ruby-forum.com/.