CODE CREATIVE
CREATING WITH PYTHON
Building complete applications

START HERE
PROJECTS
DRAW SOMETHING
We have learned how to manipulate Turtles to get a wide array of visual effects. Now let's take away the constraints and let our imaginations go wild. In this project you are commissioned to draw something. Your creation can be beautiful, interesting, cute, intricate or meaningful. Let's just stay away from boring.

RACING TURTLES
Ready, Set, Go! And off they go, Yellow is in the lead with Red right at it’s shell. We have Purple coming up from behind at Red’s tail. And from the end pack Orange is steaming down the lane. Orange just passed Purple… Just passed Red… It’s neck to neck… And it’s Purple by a beak. Let’s program this fitting simulation and go to the races.

8-BIT ART
8-bit art in video games have been making a come back with Minecraft leading the way. Handheld systems and flash games have also embraced the use of retro graphics in newer games. We will now take some time to draw our own 8-bit art using a drawing program we will build ourselves!

We might even learn how and why functions are helpful to programmers along the way.

CHOOSE YOUR OWN ADVENTURE
We have just finished learning about the 2nd pillar of computer science, the branch statement. With branches we programmers have the power to create programs that can make decisions. Turn left? Turn right? Let's go straight ahead!

Let's explore this idea further by creating a "Choose Your Own Adventure" style story! Let's put our creative hats and build something interesting.

GUESSING GAME
The Guessing Game is a classic programming exercise that challenges a programmer ability to use branches, functions and loops. The game starts off with the program generating a random number between 1 and 10. The player then needs to guess the random number while the algorithm will tell the player if the number is higher or lower.

The essence of computer science is the philosophy of breaking down a problem into smaller manageable components, so take a look at the guide to see how we can divide and conquer "The Guessing Game".

MAGIC
8-BALL
Does he like me? Should I ask her to the dance? With a hard shake, all of your questions will be answered! The Magic 8-Ball will tell you if your dog really loves you or if he's just using you for a free meal. Finally! You'll get to the cold hard truth.

In this guided project, you will build a Magic 8-Ball that will divinely answer any and all yes or no questions. Click on the links below and let's get started.

PONG
We will getting an introduction to the PyGame module and game design by building a clone of one of the first video games ever created: Pong. A stand out of it's time that has since turned into a programming classic. Ask any game designer what was the first game they programmed and chances are they will answer "Pong".

Let's continue the tradition and keep the legacy of Pong alive. We will be building a two player version that keeps score and has a ball with ever increasing speed. Can you keep up?

DENSITY
You have learned the mechanics of creating a 2-D game using Pygame. Game loops, surfaces, blitting rects, flipping the screen... child's play! Now, we are going to dive into Pygame's built-in functionalities and learn how to use groups to manage hundreds of sprites with a single command.

Density is a two player game in which each is racing to increase their density by eating a rain of pills. Let's start building Pac-man heaven!

RAIDEN 2
If you were to ask me "What is my favorite type of video game?", I would answer "Space ship shooters". If you were to ask me, "What is my favorite space ship shooter?", I would answer "Raiden 2". Raiden 2 is top/down shooter perfection with an extremely high level of difficulty and perfect gameplay.

In an act of homage to Seibu Kaihatsu, we are going to clone this revered vertical shooter and learn about building maps and using cameras in the process. Let's get started!

FINAL PROJECT
Now that you are an experienced 2D game programmer, you can choose to spend your time revisiting the projects we created along the way, or take some time to design your own game! There are many resources on the internet to help you: guides, tutorials, youtube videos, and examples programs.

If you choose to complete more well-rounded versions of Pong, Density, or Raiden, take a look at the guides to the left for ideas on how to proceed. If you are planning on creating your game, take a look at past examples in the link to the right. I have also included a couple of starter files to springboard your efforts.

Either direction you choose to go down, remember the basic elements of a "classic" game include a certain amount of control, a manageable milestone which gets increasingly more difficult to accomplish, introduces competiveness, and has a loveable theme.

THE BREAKDOWN
In the beginning of the year, you learned the fundamentals of computer science using the Python language. Mid-year, you applied what you have learned towards the creation of several video games using the Pygame module. At the end of the year, we have been working on building an original game. Some have compiled projects that contain 10's of thousands of lines of code and others have made modifications to previous projects, but everyone of you have learned something new about computer science and yourself as a learners.

Now is the time to express those thoughts.