function GameState() {

	/*
	 * Returns a number that is good representation of the current "state".
	 * Typically, a negative number means the human player (in a two player game) is doing well.
	 * A positive number means it is currently advantageous for the AI.
	 * By process of elimination, a zero value means that the outcome is neither good nor bad for either the other player or the AI.
	 */
	this.staticEvaluation = function() { return 0; };

	/*
	 * Returns a boolean indicating whether this state has more "children" to process.
	 * Whether or not a state has more children depends on the rules of the current game or other limitations.
	 * In some games, this may be when a player wins, or when the board is full (regardless of winner) or when
	 * the rules prohibit further moves.
	 */
	this.hasMoreChildren = function() { return false; };

	/*
	 * This returns the next child state after this one.
	 * If in a two player game (AI versus a human), the next state is not just the next possible computer move.
	 * It must also alternate with possible human moves.
	 *
	 * It should be noted that this function should only return *valid* states.
	 * This means that if the rules of the current game prohibit a move, it should not be returned or considered
	 * as a possible state.
	 * The minimax AI engine makes no distinction of whether a state is valid, so it will use anything returned
	 * from this method, with the assumption that any of them are valid moves for it to make.
	 *
	 * This function will not be called (by the AI engine) if the function hasMoreChildren (above) returns false.
	 */
	this.nextChild = function() { return null; };

}
