Building the Game Snake
The Final Project
In the previous unit, we covered game loops, state management, and collision detection. Now let's put it all together and build Snake.

The Final Project
In the previous unit, we covered game loops, state management, and collision detection. Now let's put it all together and build Snake.

Building Interactive Games with Turtle
In the previous unit, we covered project management with Poetry. Now we're shifting back to Turtle graphics to explore game development concepts that we'll use in the final unit to build Snake.

Modern Python Dependency Management
In the previous unit, we used pip and requirements.txt to manage dependencies. Poetry takes this further with a more complete project management workflow.

Isolating Your Project's Dependencies
In the previous unit, we learned to share code through GitHub. Now let's talk about managing the packages your code depends on.

Sharing Code and Working with Others
In the previous unit, we learned to track changes locally with Git. Now let's connect to GitHub for backup, sharing, and collaboration.

Tracking Changes to Your Code
In the previous unit, we learned to write tests. Now let's learn how to track changes to our code using Git, so we can safely experiment, undo mistakes, and keep a history of our work.

Writing Unit Tests with pytest
In the previous unit, we learned to debug and handle errors. Now let's write tests that verify our code works correctly before problems arise.

Finding Bugs and Handling Exceptions
In the previous unit, we worked with JSON data. Now let's learn how to find and fix bugs, and how to handle errors gracefully when they occur.

Reading and Writing Structured Data
In the previous unit, we learned to fetch data from APIs. Now let's understand JSON, the format that powers most of those API responses.

Fetching Data from Web Services
In the previous unit, we explored Python's standard library. Now let's learn how to fetch data from the web using APIs.
