An attempt without using a play field.
- to win(your double)
- if not, not to lose(opponent's double)
- if not, do you already have a fork(have a double double)
- if not, if opponent has a fork
- search in blocking points for possible double and fork(ultimate win)
- if not search forks in blocking points(which gives the opponent the most losing possibilities )
- if not only blocking points(not to lose)
- if not search for double and fork(ultimate win)
- if not search only for forks which gives opponent the most losing possibilities
- if not search only for a double
- if not dead end, tie, random.
- if not(it means your first move)
- if it's the first move of the game;
- give the opponent the most losing possibility(the algorithm results in only corners which gives 7 losing point possibility to opponent)
- or for breaking boredom just random.
- if it's second move of the game;
- find only the not losing points(gives a little more options)
- or find the points in this list which has the best winning chance(it can be boring,cause it results in only all corners or adjacent corners or center)
Note: When you have double and forks, check if your double gives the opponent a double.if it gives, check if that your new mandatory point is included in your fork list.