Creating AI opponents is a daunting challenge to programmers. Computers do not think like humans do, and do not 'learn.' As such, to create a competent AI, it must be specifically crafted to play a specific game.
In simple games like Tic-Tac-Toe, the number of board combinations is small. Also Tic-Tac-Toe is a solved game. These two aspects allow for a simple but competent AI that can play Tic-Tac-Toe.
However, for a more difficult game, with near infinite board combinations, such as StarCraft, creating a competent AI player is very challenging. Unlike Tic-Tac-Toe, it is not practical to create a move for each board combination. Instead, AI for StarCraft must be programmed to evaluate the current state of the game, and discover the best decision to make.
When the game rules are run by the same AI that plays against a human, such as in a computer game, it is very tempting for the programmer to allow the AI to cheat. This can artificially create more challenging AI which compensates for inadequacies in decision making.
The same decision making that an AI program has to do overlaps with the decisions that a human must make. Regardless of the player, the theory behind what influences a decision remains the same. StarCraft is a unique environment where every action has a known outcome (eg: firing this weapon does exactly X damage). Because of this transparency, we can plug numbers directly into the theoretical equations to predict the outcome of any scenario.