Heuristics: 
	estimate of distance from solution
	if you are in a search (not minimax) situation;
	if your estimate of how close you are to a solution
	NEVER underestimates distance to solution,
	search algorithms will find a solution
	Expand the search at the point which is closest to goal
	breadth first will find SHORTEST number of steps
	depth first will find CHEAPEST solution (if no underestimate)
heuristics
	if your heuristic is good, it will get you to a better position
	In TicTacToe, number of (unblocked 2 in a row) is a great heuristic

Heuristics:
	https://en.wikipedia.org/wiki/Heuristic
	rules of thumb for finding a solution	
General search for solution:
	https://en.wikipedia.org/wiki/A*_search_algorithm
	(state space search)
	if you do not under-estimate the distance to the solution, you will find the best solution
	(e.g. sliding tiles games)
	see also AO*
For game playing, do mini-max solution
	opponent chooses MINIMUM value from your perspective
	You want MAXIMUM
	but your opponent should not be assumed to be stupid!
	For every possible move you can make, pick the MAXIMUM of
		for every possible move your OPPONENT can make in response, pick the MINIMUM of
			value of the game situation from your perspective
	(
	For effenciency, do alpha beta pruning
	https://en.wikipedia.org/wiki/Heuristic
	https://beej.us/blog/data/minimax/
	http://www.paoloferraresi.it/mydocs/articoli/minimax.pdf

Example heuristics:
	for Tic Tac Toe, or (4 by 4 by 4 ttt3D)
	a win has maximum value,
	unblocked n in a rows has secondary value, based on n,
	blocking an opponent win, avoids negative valee,
	opponent having fewer unblocked opportunities avoids negative value
	can do lookahead 

If a game is simple enough that the computer can completely analyze the game tree,
and it is purely strategy zero sum game, you will not beat the computer.
If a game has good heuristics, it will play well.
If a game has heuristics and lookahead, it will beat all but expert players.

In the 1960's, Samuel wrote a checkers playing program that learned to beat him, and then went on to beat checker's champions around the world.
(Samuel's checker's player was designed to learn how to play better on its own.)
In 1996, Deep Blue beat the then world champion in chess.
	https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer)
	It used a very powerful computer with parallelism,
	and long lookahead mini-max with alpha-beta pruning.
	An upgraded version won a 6 game tournament in 1997 against the same world champion, using standard time clock rules.
	(However, it should be noted that the programmers were allowed to 'upgrade' between games,
	and the human had no opportunity to examine prior games by the program, while the computer DID have access to prior games by the human.)

So, a sufficiently powerful computer can be a worthy opponent in even some of the most complicated strategy games.