Project 9: Angry Birds with Graphics

You may work with a partner for this project. If you choose to do so, only turn in one copy of the project with both of your names in the comments at the beginning of the code.

If Angry Birds doesn't particularly interest you, you may do one of the challenge problems at the end of this description, or propose a different project to me of comparable difficulty. You must get my approval before starting work on it.

For this project, you will write an Angry Birds program with graphics. Your program must do the following:

Main program

Read in your angry birds file and make a list containing the energy levels (points) for all the pigs. For instance, if your angry birds starting file contains the lines regular, regular, helmet, moustache, regular, then you'd make a list containing [1, 1, 2, 3, 1]. (The point of reading from a file is so you can have different files with different levels of difficulty.)

Then enter a loop that lets the user choose a bird type and launch it. Some bird types will need to ask the user where they want to launch the bird. Display the pigs on a canvas after each launch. You may find it helpful to open one canvas at the start of the program and keep re-drawing the pigs on it; the clear_canvas() function may prove useful (rather than re-opening and re-closing the canvas after every launch).

This is the minimum you must do for this project. I highly encourage you to add whatever features you think would be fun. After all, this is your final project, you're working with a partner, and you two should explore what you've learned and make this something you can be proud of.

Bird types you must include

Hints

Possible enhancements

What to turn in

Through Moodle, turn in your code as a file called angrybirds_yourLastName_yourFirstName.py.

Alternate challenge programs

Here are some alternate games with graphics you could create. These are all significantly more difficult as they involve a 2-d grid. You should feel very comfortable with your programming skills in order to attempt these.