Chess
There are two types of chess programs. One is to play against you; the other is to help you become a better player by learning more. The two types can be made to work together, though they have different functions.