As you can see from the screen shots, our code successfully creates an allows for play on Mini-Golf style holes using allowing the user to use the walls and obstacles as tools to make it to the hole. Our end result accomplished all of our basic goals that we had established before starting the project and even accomplished some of our more advanced goals.
Basic Goals Met:
A noticeable quality of all of our holes (as can be seen in the screen shots) is that the walls only intersect each other at 90 degrees. This was the basic goal we set at the beginning of the project with the possibility of adding angled walls later in the project. In order to be able to use the video_set function, which would allow us to detect angled walls, would require all of the walls to be restricted in their placement and length. We decided that this would limit the shape and size of the wholes to a degree that would detriment, rather than improve the game, thus we stuck with 90 degree angled walls.
Another one of our basic goals was to have a complete 9 hole course, which we created successfully. The course could be extended into an 18 hole course in the future without too much trouble.
In addition to the program, and video aspect of the game, we wanted to have an easy to use controller that could be used with the game. Using a simple solder board, some pull-up resistors and a few push buttons, we created a controller quite worthy of our game.
Our final, and possibly most difficult basic goal was to create a standalone system that could be used with any TV and powered on batteries. Using a simple linear regulator, and moving the programmed MCU off of the STK board onto a solder board allowed us to accomplish this goal. Now we can show our nifty game off to our friends and families, and also play a little mini-golf at home when we're bored.
We managed to accomplish two of our higher goals on our project. First of all, we successfully added obstacles within the hole boundaries throughout the course. This posed some difficulty due to adding extra complexity to where the ball must bounce off of the walls. We accomplished this by writing an algorithm that used the addresses of the obstacles as reference for whether or not to bounce.
Secondly, we gave our project sound. The sound is actually reminiscent of the sound of the "Big wheel" spinning on the price is right in that when the ball is traveling quickly, you will hear a fast beeping, where as the period of beeping decreases with decreasing speed.
We wanted to add moving obstacles, music and angled walls to the project, but given our time restrictions and the difficulty imposed by some of these features, we decided to complete the project without them. They could definitely be added later for an even more enjoyable experience.