Many Chess programs view a game of chess as a tree.
Ideally the program needs to choose the best move to make.
The challenge is this tree of moves grows exponentially bigger at each level:
So looking just 8 moves ahead means having to analyze over 2 Trillion combinations.
There are lots of ways to write a search function with these considerations in mind.