Hi, thanks for interesting, I'm open for suggests, solutions or just advices. I've copied for loop and filled with the variables. Well, you're right. Hopefully, it's minor flaw since action occurs once.
I've used brute force (poor "check" checking) to check available moves - it makes engine slow. I'm thinking about some heuristic to use.
Again, I'm still not home now, and I don't even have GM to look through the source so can I ask you a few questions:
How many plies can your engine go to before it becomes incredibly slow?
Are you doing using the alpha/beta pruning technique?
What is the approximate strength of your engine?
What is YOUR approximate strength (just out of curiousity).
A few suggestions if you haven't already done these for heuristics:
Promote checks and forceful combinations first.
Create a 'cut off' for sacrifices or just huge negative values returned from one line of play.
I'm not sure if you really want to 'remember' key moves, I seem to remember that people were experimenting with that recently, but I don't think GM handles variables well enough (I mean GM makes everything a double, even when it could just be a byte).
I'd love to test this engine on basic endgames in which it would be able to play reasonably well. Even if the engine can't play too well, I'm very interested in seeing this program being able to play through a database of games so it would be a useful analysis tool - I'm very keen to run through it when I get home. Please tell me if there is anything you're having trouble with or wish me to do (such as trying to compile an opening database).