The Challenge

Your goal is to create a Processing program that helps Doane's mascot, Thomas the Tiger, move across a square map of tiles until he finds the Merrill Hall Bell. There are three levels to the challenge, designed for programmers of varying experience.

Level 1

Level 1 is the base level for the challenge. You should start by downloading the media files from the online course site. This zip file contains images for the 60x60 pixel map tiles (bricks, concrete, grass, plain, rocks, sand, and water), Thomas the Tiger and the Merrill Bell; and an audio file of a tiger roar sound effect. Then, you should create a Processing program that does the following:

Display a 600x600 pixel (10x10 tile) map using the tiles in the media zip file. Conceptually, the tiles are arranged like this:

Each of the tiles, except for tile 0 and tile 99, should be randomly chosen from the bricks, concrete, grass, rocks, sand, or water tiles.

NOTE: The random tiles are chosen by the program, not by you, and they should be different each time the program starts.

Tiles 0 and 99 should both be the plain tiles. Thomas should start over tile 0, while the bell starts a tile 99. A sample random board might look like this:

Your program should allow Thomas to move, based on keyboard input. The W-A-S-D keys should allow Thomas to move one tile at a time, in the up, left, down, and right directions, respectively. However, Thomas should not be allowed to move off the map! For example, from tile 0, Thomas can't move up or to the left.

Your program should play the tiger roar sound effect if Thomas moves on to the Merrill bell tile.

Here is a short video showing how the Level 1 program should work:

Level 2

For level 2, your program should meet all the requirements from level 1, PLUS:

Do not allow Thomas to move onto a bricks tile. Think of a bricks tile as a brick wall that Thomas can't climb over.

When the R key is pressed, randomize tiles 1 through 98: Pick new tile images for them, but leave tiles 0 and 99 plain. Do not move Thomas or the Merrill bell in the process, though.

When the L key is pressed, load the map based on a text file named map.txt. The map.txt file has 100 lines, one for each of the tiles 0 through 99. Each line has a number, and should be interpreted as tiles like this: -1 = plain, 0 = bricks, 1 = concrete, 2 = grass, 3 = rocks, 4 = sand, and 5 = water. You can make your own map.txt file, or use the one from the online course site.

Here is a short video demonstrating the level two application:

Level 3

For level 3, your program should meet all the requirements from level 2, PLUS:

When the user presses the P key, Thomas should find a route from his current location to the bell, and then move there. When he moves, he takes one step along the route each 1/2 second. He doesn't have to find the quickest route, just a route that avoids the brick walls (and of course he can't move off the board).