Memory – Programming 1 Final

Over the past 5 months of school I have been in Programming 1 learning how to code and use technology. During this time I learned how to print strings and save files as well as use graphics. When the time came to start thinking about our final project I felt drawn to doing a game. After thinking about it for a little bit I decided to program a game of Memory or Simon Says as some people call it. I made sure that I wasn’t going to take a bite to big by doing this. I talked to my father who also does programming type things and he said that it was definitely do able if I took my time to do it.

I was excited to start doing this program until the time came where I had to actually write it. I didn’t know where I was exposed to start or what I even really needed to do.I was planning on using a graphics maker called Pygame and I had to learn how to use all it before starting. Once I got into the swing of the basics I enjoyed writing it and seeing how exactly things came out. I found myself looking forward to the programming part of it and had that instant satisfaction the first time I hit F5 and the program ran, 100% with no problems.

In order to have something to build off I had to create a base for this program. “What is the least amount of work I can do and be able to submit it?” For me it was hard to figure out if I wanted graphics in my base or just the program printing out a list of letters and then having the user repeat. I decided that the base of my program would be where the program creates a random list and prints it out in the shell. Ex. “RRGBYYB” it then would clear and the user would have to type in the same list. One letter was added every round until the user lost, after that it would restart for the next game.

Even with my program finished there are a lot of things that I would like to add to make the program look and also respond better. The main one going from the base was adding graphics so that I could make it look nicer and have it be more intriguing for the user so they have something more to look at then letters. Adding that allows me to do many other things that I would like to do. For me I feel like adding a “Main Menu” would be a good thing to add so that the user can start when ever they’d like by pressing start instead of having to close the file. I would also like to add an area where you can see a leader board. Adding a leader board was an “extra credit” point that we could’ve gotten from a different program but I didn’t do it and so I didn’t really know where to start with one if I added it. I think that it would help make things more competitive if you can see the top score of anyone who’s ever done it. One thing that if I had a lot more time to do would make different “levels” in the menu the user could pick from a series of levels that they could do. Changing the speed and or color of the squares, background and such. The user would pretty much be able to edit and customize their own game. There isn’t a real reason why I want to add this besides that I think it would be interesting and fun to be able to edit how the game looks before you play.

I was able to add graphics to my final program and it made things a lot nicer. I didn’t have much time to go through and add the other items that I wanted to add. I attempted to make a Main Menu but it was printing correctly and so without that it was hard to do the other things as well. What I was able to do was add more animation to the game. There is a rectangle in the top left of the screen that prints out the user’s current score and adds one every time they make it through a sequence. The buttons all flash so that the user knows what button is in the sequence but I was also able to make an animation when the user misses a button. The background will flash white and then turn grey while the board resets. It goes back to black once the board is reset to zero informing the user that they can start again. This all helps the user understand what is going on and allow them to have more fun with seeing visuals.

This program consists of a lot of steps that had to taken to get the end result that I did. I had to learn how to use Pygame and graphics in general. After learning and understanding what I was using I had to start writing my source code.  During my time programming I had to run and test and make sure that the source code looked correctly until I got the end result that I wanted.

Visual of Game Over Screen
Game Over

Leave a Reply