NOTE: demo videos in Google Drive folder linked in the ""Try it out" links" section

We were inspired by - surprise, surprise! - the old Windows screen saver and our love for physics. In this project, we used the physics of reflection to bounce our icons/logos around. (Also, it was the tenth prompt given in the competition.)

What it does: It bounces. You watch. Badum-tsss. But you can also change the icon/logo that's bouncing, which is pretty cool.

We used the Model-View-Controller design pattern by creating a class, Logo in Logo.py, which creates the array version of the bouncy logo. It stores the location and velocity of the logo, which are used in the view/controller segments of the program to display the logo. We also created for the user to change the logo displayed.

One of the unexpected challenged we ran into was tricks in Tkinter. Since none of us used it before, we were completely clueless. Thankfully, we figured it out just enough, but there were still annoyances, and some we're still not sure if they're a result of limitations in our knowledge or the package itself. For example, the grid system sucks. Cells contorted as a result of the logo passing through them. Another example is when we tried to place the buttons beside each other horizontally. Their sizes distorted all other rows' sizes too. We tried creating frames to separate the bouncing area from the buttons area, but then things started disappearing off the screen. We didn't bother with it much longer because of lack of time. Don't even get me started on when we tried to set a background colour for the window...

Despite the struggles, we are proud of the outcome. It make not be super 'pretty,' but it's neat, clean and functional. Not to mention addicting to watch...

At the end of this project, we learned how to create GUIs in Python. Some of us even learned the MVC design pattern for the first time. But most of all, we've learned how to program and communicate in teams, especially given the limited experience in that compared to coding in general.

If we had more time, we would have liked to make our display prettier, and with a generally cleaner start (when you first run it, the window flashes as it displays everything, then functions properly).

Built With

Share this project:

Updates