#### Overview of this book

Machine learning and neural networks are pillars on which you can build intelligent applications. Artificial Intelligence and Machine Learning Fundamentals begins by introducing you to Python and discussing AI search algorithms. You will cover in-depth mathematical topics, such as regression and classification, illustrated by Python examples. As you make your way through the book, you will progress to advanced AI techniques and concepts, and work on real-life datasets to form decision trees and clusters. You will be introduced to neural networks, a powerful tool based on Moore's law. By the end of this book, you will be confident when it comes to building your own AI applications with your newly acquired skills!
Artificial Intelligence and Machine Learning Fundamentals
Preface
Free Chapter
Principles of Artificial Intelligence
AI with Search Techniques and Games
Regression
Classification
Using Trees for Predictive Analysis
Clustering
Deep Learning with Neural Networks

## Lesson 2: AI with Search Techniques and Games

### Activity 2: Teach the agent realize situations when it defends against losses

Follow these steps to complete the activity:

1. Create a function player_can_win such that it takes all moves from the board using the all_moves_from_board function and iterates over it using a variable next_move. On each iteration, it checks if the game can be won by the sign, then it return true else false.

```def player_can_win(board, sign):
next_moves = all_moves_from_board(board, sign)
for next_move in next_moves:
if game_won_by(next_move) == sign:
return True
return False```
2. We will extend the AI move such that it prefers making safe moves. A move is safe if the opponent cannot win the game in the next step.

```def ai_move(board):
new_boards = all_moves_from_board(board, AI_SIGN)
for new_board in new_boards:
if game_won_by(new_board) == AI_SIGN:
return new_board
safe_moves = []
for new_board in new_boards:
...```