Assignment
Write a tic-tac-toe game that allows a human player to play against the computer. Your program will play many turns against a human opponent, and it will learn. When it is the computer's turn, the computer randomly selects an empty field, except that it won't ever choose a losing combination. For that purpose, your program must keep an array of losing combinations. Whenever the human wins, the immediately preceding combination is stored as losing. For example, suppose that X = computer and O = human. Suppose the current combination is

Now it is the human's turn, who will of course choose

The computer should then remember the preceding combination

as a losing combination. As a result, the computer will never again choose that combination from

Or

Discover classes and supply a UML diagram before you begin to program.