I am trying to find a good evaluation function for a game with:
A 7x7 tile board
2 players, given an equal number(>=3 currently undetermined) of stones placed randomly on the tiles
A turn is consisted of a player moving a stone owned by that player, vertically or horizontally but not diagonally to a very next tile of itself
A player loses when out of moves: a player is out of moves when every stone that player owns, has its very next tiles, except not for diagonals necessarily, occupied either by the board edge or other stones
Right now, my evaluation function's return value increases:
if the total moves available to the player is increasing, and/or
average distance to the middle tile of the board is decreasing
Question: Is there a better strategy? How can I improve my evaluation function?