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/.