We wanted to learn how to build a game with a GUI that we created ourselves. It's called "Terrible Games" because we wanted the games to be annoying or have a surprise twist!

What it does

There's a basic title screen with three planned games and two completed games. Tiles is a puzzle game in which you have to swap tiles with the blank space until all the numbers are in order. 52 pickup is the classic fun for the whole family game that requires you to pick up all 52 dropped cards.

How to play

We ran out of time to write instruction buttons, but both completed games are designed to be played with the mouse. For 52 pickup, click on the cards. For tiles, swap the tiles by clicking a tile and then clicking into an unoccupied space. Sort in order to win! Press backspace to return to the main menu.

How we built it

We used python and pygame to build it.

Challenges we ran into

Originally we wanted to do a multiplayer webapp, but both of us have limited experience in that, so late Friday we changed course to pygame. Other challenges were learning how python treats variables, learning what functions to use to display, and changing the display.

Also, it turns out there's a lot of design work that goes into designing a proper game loop with transitions and whatnot. We actually had to refactor the code twice as we went along, as our original plans for transitioning between game states (title screen/tiles/52 pickup/snake) didn't work as planned.

Accomplishments that we're proud of

Emily: I'm really proud that we were able to pull this together in such a short period of time, considering neither of us had ever heard of pygame before. I actually like how it turned out quite a bit! I think it looks fun in an ironic way. I think I also learned more about how Python works, and more things about object-oriented programming. Some seemingly small issues actually took a lot of research to solve, and it increased my understanding more comprehensively.

Brandon: I'm proud of the progress I've made towards becoming a better programmer. I've always considered myself to be decent at programming, at least in terms of theory, but it turns out there's actually a lot to be learned in terms of object-oriented programming. Before this hackathon, I could not tell you when to use a struct vs a class, when to make a new file, etc., but after browsing through countless StackOverflow threads I can say that my knowledge has improved significantly.

What we learned

We learned a lot about pygame's functions and how to graphically display things. We also got more familiar with python, how it works, and how it passes variables between functions. We also got lots of hands-on experience with building a complete application from scratch.

What's next for Terrible Games

I'd like to add more hidden easter eggs to the tiles game, such as little quirks to make it more difficult. Also, completing the snake game would be nice!

Built With

Share this project: