A program for learning the game of contract bridge while at the same time playing and enjoying the game. It gives the reasoning behind each non-trivial bid that is made, or card that is played. The user can interact with the program at a rate that is consistent with his or her current knowledge of the game. The ability to undo any bid or play permits the student to compare his or her action with what the program would do in the same situation.