Well, this thread has turned into more of an odyssey than I ever expected, and I thanks those who have stuck with me.
The thread has seen attempts at a few different searches, all have fallen short for one reason or another. Always I find myself engaged in some sort mental flip-flop that my brain has always struggled with. It's almost like I have some form of techno-dyslexia or something.
OK, all of the pseudo code examples I see involve a search function that returns an eval, as opposed to a move, so I find myself thinking "ok here's the eval, where's the move"? Always I end up starting with a non-recursive "root-search" and then applying a separate recursive search to each move in the initial list. So what I end up with is the recursion function being called 20-30 times from outside of itself, instead of just once, and i am not sure this is necessary. I feel it should work ok, but it has been suggested to me elsewhere that I am making my life a little more complicated by doing it this way. The problem is, when I don't do it this way, it seems i end up "over-objectifying" within my search function, in an OOP sense, which seems to slow things down.
Anyways, I don't have specific coding issues to deal with this morning. I've gone backwards to scratch again and written myself a basic minimax function with no pruning, and I'm gonna play with that for a while.
cheers.