Hi everybody. I am trying for a few months now to write a fast and basic (but good) evaluation function for my connect 4 engine. (wriiten in JAVA with Minimax/Alpha Beta)
I am following the simple idea of : 1 in a row*1 +2 in a row*4 +3 in a row (odd)*16 +three in a row(even)*32. but still the engine is playing relatively weak when testing it with some other engines.
I also tried other tweaks to "help" the engine to control the Zugzwang of the game but with no luck, so i came back to the basic and simple weights function. when changing the weights values of the eval' function,the engine changes it's play a little bit ( i have no idea why is that..) but still not strong enought.
can anybody give me some advice on this? maybe i am setting the wrong values (maybe too low?) I will appreaciate any guide you guys can give me. this is a rather simple game (not chess..) and i am getting really upset that i am not succeeding in making a normal playing engine.
even at depth 10 or 12 there is no remarkable improvement... this is why i think that there is a problem with the evaluation function and not a depth issue.
I am not trying to make a perfect engine, only one that plays a relatively strong game. thx!
EDIT: well, here is an update, i added adjacent pieces (neighbors) checking for the two in a row combinations. I am adding some points to two adjacent tokens and seems to help a little. But i wonder,what it takes to make the engine play sharper and attack more..