# Questions

## Checkpoint 1

1. How do you decide where to move in BabySnake? Explain how to choose moves
   in enough detail that someone else could follow your instructions.

## Checkpoint 2

2. How many distinct states are there for BabySnake on a 4×4 grid? If we assume that all four
   arrow keys are valid actions in every state, how many rows would the full Q-table contain?

3. The discount factor γ (gamma) can range from 0 to 1. What would be the effect of setting
   γ to 0? What about 1?

4. The learning rate α (alpha) can also range from 0 to 1. What would be the effect of setting
   α to 0? What about 1?

5. Calculate the new Q-value for ((2, 2, 3, 3), RIGHT). Explain your answer.

## Checkpoint 3

6. At what episode did the agent start reliably finding food?

7. Add `print(Q)` to `train_babysnake.py` before the `watch` call and run it again. Can you
   read the policy? For a given state, does the highest Q-value point toward the food?

8. How does the trained agent's behavior compare to the reasoning you wrote down in question 1?
