Graph 2: Depth First and Breadth First Search
Our Tic-Tac-Toe State Space
["X", "X", "O", "X", "O", "-", "O", "O", "X"]
["X", "-", "O", "-", "-", "-", "O", "X", "-"]
["X", "-", "O", "-", "-", "-", "O", "X", "-"]
Optimal Move Assumption
Optimal Move Assumption
Optimal Move Assumption
Depth First Search
There are several algorithms to transverse a tree. One of the most basic ones is a depth first search.
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Depth First Search
Breadth First Search
Another algorithm to transverse a tree is a breadth first search.
Breadth First Search
1
2
3
4
5
6
7
Breadth First Search
1
2
3
4
5
6
7
Breadth First Search
1
2
3
4
5
6
7
8
Breadth First Search
Drawing the board
Drawing the board
width == height
height == width
Drawing the board
width/3
width/3
width/3
width/3
(0, 0)
Drawing the board
width/3
width/3
(0, width/3) ⇒ (width, width/3)
(0, 2*width/3) ⇒ (width, 2*width/3)
(width/3, 0) ⇒ (width/3, width)
(2*width/3, 0) ⇒ (2*width/3, width)
Drawing the board
width/3
width/3
10% padding on each side
Drawing the board
width/3
width/3
0.1*width/3
0.1*width/3
0.8*width/3
Drawing the board
width/3
width/3
0.1*width/3
0.1*width/3
0.8*width/3
Drawing the board
width/3
width/3
0.1*width/3
0.1*width/3
0.8*width/3
(0, 0)
Drawing the board
width/3
width/3
0.1*width/3
0.1*width/3
0.8*width/3
(0, 0)
(0, 0) ⇒ (0.8*width/3, 0.8*width/3)�(0, 0.8*width/3) ⇒ (0.8*width/3, 0)
Drawing the board
width/3
width/3
0.1*width/3
0.1*width/3
0.8*width/3
(0, 0)
cx: 0.4*width/3�cy: 0.4*width/3� r: 0.4*width/3