Human opponent.

Write and describe a program that plays Breakthrough against a human opponent, with either the program or the human playing first. The program should, after each move, display the current state of the board, and it must employ a static evaluation function
The program must be written in Java language. Your program may employ any of the algorithms for board evaluation and move selection — minimax, alpha-beta, forward pruning, etc, and any modifications that you think are appropriate. Note that the major operations of the program — and the major challenges — are these:

Representing the game board and moves on it.
Displaying the game board and interacting with the opponent.
Evaluating board configurations: the static evaluation function.
Organizing the search of the game tree on which move selection is based.
Please answers to the following questions about your program along with the Java code and result

How is the board represented, and how are moves on the board implemented?
How does the program interact with its human opponent?
How does the program’s static evaluation function (SEF) evaluate a board configuration?
How does the program use the SEF values to decide what move to make?
How well does the program perform against human opponents.

Sample Solution