Here's how the command line interface of this project works(There's also a graphical user interface for the game):
Welcome to Connect Four
Please choose from the following options:
1. Human vs Human
2. Human vs Computer (Human goes first)
3. Computer vs Human (Computer goes first)
4. Computer vs Computer
Choice[4]:4
Please choose the level of the computer 1:
1. RandomPlayer
2. Depth-Limited MinMax Player
3. Alpha Beta Pruning Player
4. MinMax Player
Choice[1]:3
Please choose the level of the computer 2:
1. RandomPlayer
2. Depth-Limited MinMax Player
3. Alpha Beta Pruning Player
4. MinMax Player
Choice[1]:3
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 0 0 0 0 0
5: 0 0 0 0 0 0 0
Player 1 next move:
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 0 0 0 0 0
5: 0 0 0 1 0 0 0
Player 2 next move:
6
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 0 0 0 0 0
5: 2 0 0 1 0 0 0
Player 1 next move:
7
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 0 0 0 0 0
5: 2 0 1 1 0 0 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 0 0 0 0 0
5: 2 0 1 1 2 0 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 0 0 0 0 0
4: 0 0 1 0 0 0 0
5: 2 0 1 1 2 0 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 0 0 0 0 0
3: 0 0 2 0 0 0 0
4: 0 0 1 0 0 0 0
5: 2 0 1 1 2 0 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 0 0 0 0
4: 0 0 1 0 0 0 0
5: 2 0 1 1 2 0 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 0 0 0 0
4: 0 0 1 2 0 0 0
5: 2 0 1 1 2 0 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 0 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 1 0 0 0
4: 0 0 1 2 0 0 0
5: 2 0 1 1 2 0 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 1 0 0 0
4: 0 0 1 2 0 0 0
5: 2 0 1 1 2 0 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 1 0 0 0
4: 1 0 1 2 0 0 0
5: 2 0 1 1 2 0 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 0 0 0 0
3: 0 0 2 1 0 0 0
4: 1 0 1 2 0 0 0
5: 2 0 1 1 2 2 0
Player 1 next move:
9
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 1 0 0 0
3: 0 0 2 1 0 0 0
4: 1 0 1 2 0 0 0
5: 2 0 1 1 2 2 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 1 0 0 0
3: 0 0 2 1 0 0 0
4: 1 0 1 2 0 2 0
5: 2 0 1 1 2 2 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 1 0 0 0
3: 0 0 2 1 0 1 0
4: 1 0 1 2 0 2 0
5: 2 0 1 1 2 2 0
Player 2 next move:
9
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 1 0 0 0
3: 0 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 0 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 0 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 1 next move:
8
0 1 2 3 4 5 6
0: 0 0 0 0 0 0 0
1: 1 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 2 next move:
8
0 1 2 3 4 5 6
0: 2 0 0 0 0 0 0
1: 1 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 1 next move:
9
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 0 1 1 2 2 0
Player 2 next move:
10
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 0 1 2 2 2 0
5: 2 2 1 1 2 2 0
Player 1 next move:
11
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 0 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 1 1 2 2 2 0
5: 2 2 1 1 2 2 0
Player 2 next move:
11
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 2 0 0 0
2: 2 0 1 1 0 0 0
3: 1 0 2 1 0 1 0
4: 1 1 1 2 2 2 0
5: 2 2 1 1 2 2 0
Player 1 next move:
12
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 2 0 0 0
2: 2 0 1 1 0 0 0
3: 1 1 2 1 0 1 0
4: 1 1 1 2 2 2 0
5: 2 2 1 1 2 2 0
Player 2 next move:
43
0 1 2 3 4 5 6
0: 2 0 1 0 0 0 0
1: 1 0 2 2 0 0 0
2: 2 2 1 1 0 0 0
3: 1 1 2 1 0 1 0
4: 1 1 1 2 2 2 0
5: 2 2 1 1 2 2 0
I haven't implemented the interfaces. Player classes are my contribution.