Evaluation Function for a Go like game

I am trying to find a good evaluation function for a game with:

• A 7x7 tile board
• 2 players, given 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? or how can I improve my evaluation function?
• Welcome to AI! This is definitely the type of problem studied in Combinatorial Game Theory. There's even a formal name for your victory condition: "normal play". It sounds like pathfinding is a factor, so you might want to take a look at that. I'm not fully understanding your current evaluation function--please describe it comprehensively in full detail. – DukeZhou Nov 12 '17 at 22:27