Assignment Title

CS 640 Programming assignment 3
Kaihong Wang
teammate: Qitong Wang
Apr 24, 2019


Problem Definition

1. Learn what is a tic-tac-toe game and how to win it.
2. Implement minimax or alpha-beta pruning for a tic-tac-toe game AI to break the 4x4x4 game.
3. Compete with AI implemented from other and win a tournament with extra credits!


Method and Implementation

1. Minimax algorithm:
For designed AI algorithm implemented in the tic-tac-toe game, the minimax algorithm with alpha-beta pruning method is used to let AI try to win the game efficiently. Here is the pseudo-code for minimax methodology:

2. Heuristic value calculation:
heuristic value for each node can be defined as
The number of possible counter players winning lines minus the number of possible counter players winning lines.
Here is the pseudo-code for heuristic methodology:


Experiments

In order to show the effectiveness of our AI system. We designed 4 different experiments:
1. AI system with depth equals to 3 vs Random system.
2. AI system with depth equals to 3 vs AI system with depth equals to 1
3. AI system with depth equals to 3 vs AI system with depth equals to 2
4. AI system with depth equals to 3 vs AI system with depth equals to 3
Each experiment run 100 times. We also calculate average time of each steps of AI thinking.


Results

The experiment results table.

Winning Rate Draw Rate Losing Rate Player 1 Step Running time Player 2 Step Running time Player 1 Total Running time Player 2 Total Running time
Depth3_AI VS Random 100% 0% 0% 0.204s 0.204s 1.948s 1.949s
Depth3_AI VS Depth1_AI 98% 2% 0% 0.139s 0.142s 1.606s 1.553s
Depth3_AI VS Depth2_AI 9% 89% 2% 0.079s 0.079s 2.303s 2.301s
Depth3_AI VS Depth3_AI 2% 93% 5% 0.116s 0.116s 3.476s 3.476s

Here are some examples of processes.

Depth3_AI VS Random Depth3_AI VS Depth1_AI Depth3_AI VS Depth2_AI Depth3_AI VS Depth3_AI
Depth3_AI Wins Depth3_AI Wins Draw Draw
num:64
player1:0,0,3
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[____]

level(z) 3
[X___]
[____]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[____]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:62
player1:0,0,0
level(z) 0
[X___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[____]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:60
player1:2,1,1
level(z) 0
[X___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[____]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[__O_]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[____]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:58
player1:2,1,2
level(z) 0
[X___]
[__O_]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:56
player1:3,3,0
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[___O]

level(z) 3
[X__O]
[____]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[___O]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
num:54
player1:1,2,1
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[___O]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[____]

level(z) 2
[____]
[____]
[_X__]
[O__O]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
num:52
player1:1,2,2
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[____]

level(z) 2
[____]
[__X_]
[_X__]
[O__O]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[____]

level(z) 2
[____]
[__X_]
[_X__]
[OO_O]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
num:50
player1:3,2,2
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[____]

level(z) 2
[____]
[__X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[____]
[__X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[___O]
[____]
[____]

++++++++++++++++++++++++++++
num:48
player1:1,1,3
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[____]
[__X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[____]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
num:46
player1:0,3,2
level(z) 0
[X___]
[O_O_]
[____]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[___O]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
num:44
player1:2,1,0
level(z) 0
[X___]
[O_O_]
[_X_O]
[___X]

level(z) 1
[____]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
level(z) 0
[X___]
[O_O_]
[_X_O]
[___X]

level(z) 1
[_O__]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[____]
[____]

++++++++++++++++++++++++++++
num:42
player1:2,1,3
level(z) 0
[X___]
[O_O_]
[_X_O]
[___X]

level(z) 1
[_O__]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[_X__]
[____]

++++++++++++++++++++++++++++
(2,1,0)state: 1
(2,1,1)state: 1
(2,1,2)state: 1
(2,1,3)state: 1
Player1 Wins
level(z) 0
[X___]
[O_O_]
[_X_O]
[___X]

level(z) 1
[_O__]
[__X_]
[_X__]
[___O]

level(z) 2
[___X]
[O_X_]
[_X__]
[OOXO]

level(z) 3
[X__O]
[_X_O]
[_X__]
[____]
num:64
player2:1,2,2
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[____]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:63
player1:2,1,1
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[____]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:62
player2:0,0,0
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[____]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:61
player1:0,0,3
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[X___]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:60
player2:3,3,3
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:59
player1:2,1,2
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[_X__]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:58
player2:1,2,1
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[__O_]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[_X__]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:57
player1:3,3,0
level(z) 0
[O___]
[____]
[____]
[___X]

level(z) 1
[____]
[__O_]
[_X__]
[____]

level(z) 2
[____]
[__O_]
[_X__]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:56
player2:2,2,1
level(z) 0
[O___]
[____]
[____]
[___X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_X__]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:55
player1:2,2,2
level(z) 0
[O___]
[____]
[____]
[___X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_XX_]
[____]

level(z) 3
[X___]
[____]
[____]
[___O]

++++++++++++++++++++++++++++
num:54
player2:2,1,3
level(z) 0
[O___]
[____]
[____]
[___X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_XX_]
[____]

level(z) 3
[X___]
[____]
[_O__]
[___O]

++++++++++++++++++++++++++++
num:53
player1:1,0,0
level(z) 0
[O___]
[X___]
[____]
[___X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_XX_]
[____]

level(z) 3
[X___]
[____]
[_O__]
[___O]

++++++++++++++++++++++++++++
num:52
player2:3,0,0
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_XX_]
[____]

level(z) 3
[X___]
[____]
[_O__]
[___O]

++++++++++++++++++++++++++++
num:51
player1:0,3,3
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[____]
[__O_]
[_XX_]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[___O]

++++++++++++++++++++++++++++
num:50
player2:0,1,2
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[_O__]
[__O_]
[_XX_]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[___O]

++++++++++++++++++++++++++++
num:49
player1:3,0,3
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[_O__]
[__O_]
[_XX_]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:48
player2:2,3,2
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__O_]
[_XO_]
[____]

level(z) 2
[_O__]
[__O_]
[_XXO]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:47
player1:1,3,1
level(z) 0
[O___]
[X___]
[____]
[O__X]

level(z) 1
[____]
[__OX]
[_XO_]
[____]

level(z) 2
[_O__]
[__O_]
[_XXO]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:46
player2:1,3,0
level(z) 0
[O___]
[X__O]
[____]
[O__X]

level(z) 1
[____]
[__OX]
[_XO_]
[____]

level(z) 2
[_O__]
[__O_]
[_XXO]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:45
player1:3,2,1
level(z) 0
[O___]
[X__O]
[____]
[O__X]

level(z) 1
[____]
[__OX]
[_XO_]
[__X_]

level(z) 2
[_O__]
[__O_]
[_XXO]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:44
player2:1,1,1
level(z) 0
[O___]
[X__O]
[____]
[O__X]

level(z) 1
[____]
[_OOX]
[_XO_]
[__X_]

level(z) 2
[_O__]
[__O_]
[_XXO]
[____]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
num:43
player1:3,1,2
level(z) 0
[O___]
[X__O]
[____]
[O__X]

level(z) 1
[____]
[_OOX]
[_XO_]
[__X_]

level(z) 2
[_O__]
[__O_]
[_XXO]
[_X__]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]

++++++++++++++++++++++++++++
(3,0,3)state: 1
(3,1,2)state: 1
(3,2,1)state: 1
(3,3,0)state: 1
Player1 Wins
level(z) 0
[O___]
[X__O]
[____]
[O__X]

level(z) 1
[____]
[_OOX]
[_XO_]
[__X_]

level(z) 2
[_O__]
[__O_]
[_XXO]
[_X__]

level(z) 3
[X__X]
[____]
[_O__]
[X__O]
num:64
player1:0,3,3
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:63
player2:1,2,2
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:62
player1:2,2,2
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:61
player2:0,0,0
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:60
player1:3,0,3
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:59
player2:0,3,0
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:58
player1:1,1,1
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:57
player2:1,1,2
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:56
player1:0,0,3
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:55
player2:3,3,3
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:54
player1:1,2,0
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:53
player2:2,1,1
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_O__]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:52
player1:2,2,1
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:51
player2:2,0,3
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:50
player1:3,3,0
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:49
player2:3,2,1
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:48
player1:2,3,2
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:47
player2:0,1,0
level(z) 0
[OO_O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:46
player1:0,2,0
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:45
player2:1,2,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:44
player1:0,1,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[XX_X]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:43
player2:0,2,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:42
player1:2,1,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[_XXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:41
player2:2,0,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:40
player1:1,0,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:39
player2:1,3,1
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:38
player1:2,0,0
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[____]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:37
player2:0,0,1
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:36
player1:3,0,1
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:35
player2:3,0,0
level(z) 0
[OOXO]
[__X_]
[X___]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:34
player1:3,2,2
level(z) 0
[OOXO]
[__X_]
[X___]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:33
player2:2,2,0
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:32
player1:2,2,3
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[X__O]

++++++++++++++++++++++++++++
num:31
player2:3,1,3
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:30
player1:3,1,0
level(z) 0
[OOXO]
[__X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:29
player2:1,0,0
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:28
player1:1,0,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:27
player2:2,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:26
player1:0,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:25
player2:3,3,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:24
player1:0,3,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[___X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:23
player2:0,0,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:22
player1:1,3,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:21
player2:1,2,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:20
player1:3,2,0
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:19
player2:2,1,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:18
player1:0,2,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:17
player2:3,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:16
player1:3,2,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:15
player2:1,1,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:14
player1:1,3,0
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:13
player2:1,3,2
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:12
player1:2,3,3
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:11
player2:1,0,1
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:10
player1:2,1,0
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:9
player2:3,1,1
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:8
player1:2,0,1
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:7
player2:1,1,0
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:6
player1:0,2,1
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:5
player2:0,1,2
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:4
player1:2,3,0
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:3
player2:3,1,2
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[_OXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:2
player1:0,1,1
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[_OXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:1
player2:3,0,2
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[OOXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
This is a draw.
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[OOXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]
num:64
player1:0,3,3
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[____]
[____]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:63
player2:1,2,2
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[____]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:62
player1:2,2,2
level(z) 0
[____]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:61
player2:0,0,0
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[____]

++++++++++++++++++++++++++++
num:60
player1:3,0,3
level(z) 0
[O___]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:59
player2:0,3,0
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[____]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:58
player1:1,1,1
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[__O_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:57
player2:1,1,2
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[___X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:56
player1:0,0,3
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X___]

++++++++++++++++++++++++++++
num:55
player2:3,3,3
level(z) 0
[O__O]
[____]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:54
player1:1,2,0
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[____]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:53
player2:2,1,1
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_O__]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:52
player1:2,2,1
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[____]
[X__O]

++++++++++++++++++++++++++++
num:51
player2:2,0,3
level(z) 0
[O__O]
[__X_]
[____]
[____]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:50
player1:3,3,0
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[____]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:49
player2:3,2,1
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__X_]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:48
player1:2,3,2
level(z) 0
[O__O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:47
player2:0,1,0
level(z) 0
[OO_O]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:46
player1:0,2,0
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[____]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:45
player2:1,2,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[X__X]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:44
player1:0,1,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[XX_X]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:43
player2:0,2,3
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[__XX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:42
player1:2,1,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[_XXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:41
player2:2,0,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[_OO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:40
player1:1,0,2
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X__]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:39
player2:1,3,1
level(z) 0
[OOXO]
[__X_]
[____]
[___X]

level(z) 1
[____]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:38
player1:2,0,0
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[____]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:37
player2:0,0,1
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[__O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:36
player1:3,0,1
level(z) 0
[OOXO]
[__X_]
[X___]
[___X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:35
player2:3,0,0
level(z) 0
[OOXO]
[__X_]
[X___]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[____]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:34
player1:3,2,2
level(z) 0
[OOXO]
[__X_]
[X___]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:33
player2:2,2,0
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O___]
[X__O]

++++++++++++++++++++++++++++
num:32
player1:2,2,3
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[X__O]

++++++++++++++++++++++++++++
num:31
player2:3,1,3
level(z) 0
[OOXO]
[__X_]
[X_O_]
[O__X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:30
player1:3,1,0
level(z) 0
[OOXO]
[__X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:29
player2:1,0,0
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[__O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:28
player1:1,0,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OX_]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:27
player2:2,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O___]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:26
player1:0,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__X_]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:25
player2:3,3,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[____]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:24
player1:0,3,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[___X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:23
player2:0,0,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_O_]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:22
player1:1,3,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_X_O]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:21
player2:1,2,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OX_X]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:20
player1:3,2,0
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[O_X_]
[XO_O]

++++++++++++++++++++++++++++
num:19
player2:2,1,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O__X]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:18
player1:0,2,2
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_O_]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:17
player2:3,3,1
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XO_O]

++++++++++++++++++++++++++++
num:16
player1:3,2,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[X_OX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:15
player2:1,1,3
level(z) 0
[OOXO]
[O_X_]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:14
player1:1,3,0
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOO_]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:13
player2:1,3,2
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOX_]
[XOXO]

++++++++++++++++++++++++++++
num:12
player1:2,3,3
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[_XOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:11
player2:1,0,1
level(z) 0
[OOXO]
[O_XX]
[X_O_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:10
player1:2,1,0
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[X_OO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:9
player2:3,1,1
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[_OXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:8
player1:2,0,1
level(z) 0
[OOXO]
[O_XX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:7
player2:1,1,0
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O__X]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:6
player1:0,2,1
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[O_XX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:5
player2:0,1,2
level(z) 0
[OOXO]
[OOXX]
[XXO_]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:4
player1:2,3,0
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[__XO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:3
player2:3,1,2
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[O_XX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[_OXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:2
player1:0,1,1
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[_OXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
num:1
player2:3,0,2
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[OOXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]

++++++++++++++++++++++++++++
This is a draw.
level(z) 0
[OOXO]
[OOXX]
[XXOX]
[OXXX]

level(z) 1
[OXXX]
[OXOO]
[XOXO]
[XOOO]

level(z) 2
[OOXX]
[XOOO]
[OXXX]
[OOXO]

level(z) 3
[XXOX]
[XOOX]
[OOXX]
[XOXO]


Discussion

Observations:

Analysis:


Conclusions

In this assignment, we successfully design an AI gaming system which can beat random gaming system efficiently. The experiment results show the usefulness and efficiency of our AI gaming system.
Kaihong Wang and Qitong Wang usually discussed together and finished the assignment.


Credits and Bibliography

Reference:
https://en.wikipedia.org/wiki/Tic-tac-toe
https://en.wikipedia.org/wiki/3D_tic-tac-toe#cite_note-7