Description: In this project, students were able to program a game on a website called “Starlogo Nova”. We had to create a game that used chance, and present it at our exhibition. This gave us an opportunity to learn about online game programming and how we can use our knowledge of probability to understand the odds of winning.
Overview:
Benchmark 1: For the first benchmark, we documented what we wanted our game to be. We worked with different types of games like dice or card games and collected data prior to creating our game. After exploring the variety of games we could choose from, we planned out our idea’s for our games. We had to make a game that would have a straightforward probability analysis. We created a document answering the following questions: “Why did you chose your game?”, “What’s your game’s objective?”, “How do you see your game being implemented in Starlogo Nova?”, “What are challenges that might occur in the process of creating your game?”.
Benchmark 2: In this benchmark, we gave a more detailed description of our game. This included sounds, how the player was going to know how to keep track of their score, and other specific features. This detailed description was not a comittment but we had to have something to base our game off of. A description of the probabilites we were interested in calculating was a component to this benchmark as well.
Benchmark 3: We documented how we were going to program our game on Starlogo Nova. This included a description of the traits, breeds, agents, widgets, and logic that we had to program. This benchmark was an important step because we had to think of the programming details before actually programming. This helped us get a sense of how we were going to do it and if we knew how to make them work.
Benchmark 4: Because this project was about programming and probability, we analyzed different probabilities for our game. Some questions I analyzed for our game were:
What is the probability of landing on the correct cup on the first try?
What is the probability of getting the correct cup on the second try?
Benchmark 5: This benchmark was our final version of our game. After creating many versions of our game and revisons, we finished our game. I ended up being incredibly proud of our game. Although, we didn’t accomplish some of our main goals for our game, we still were able to complete it even with the challenges.
Benchmark 6: We documented the program details used for our games. In this document we explained what breeds, traits, and agents we used that made the game succesful. We wrote a good amount and included some screenshots to make sure our design made sense.
How to play my game: To start the game you click on set up and forever. To move the arrow you use the left and right keys. Stop on the circle you think is hiding the red gem. Use the up key to click on the circle. If you found the gem, you won! If you didn't find it on the first try, click set up. Repeat steps until you find the gem!
The first image shows how I used the right key to click on the second circle on my first try. As you can see on the second image, I wasn't succesful. I clicked the set up button and tried again. On my second try, I clicked on the first circle but failed again. Finally, I clicked on the third circle and found the gem.
Reflection: When starting the project, I was worried I wasn't going to be able to program a game. I also didn't know anything about probability, so some of the assignments were difficult for me. However, the more I practiced the better I got at probability analysis. I made multiple mistakes, sometimes I would look for what went wrong in my code and I would get extremely frustrated when I couldn't find the mistake. After overcoming challenges, I was happy I learned how to program. A success for me was finishing the game, and there were moments where I felt like giving up. Our game turned out exactly like we wanted, even better. A habit of a mathematician that helped me with this success is "stay organized". To be able to program this game, I had to be organized and clean. Codes could get complicated, but I came up with ways to make them neat so others could understand my work. I stayed organized when we were working with the probability questions. The two way tables and tree diagrams helped me understand what we were doing, and by creating charts I was able to visualize the probability problems. Like I mentioned before, there would be problems with my code, but I couldn't see what I did wrong. This was a big challenge especially because we did a lot of work in one day. When something went wrong we had to read what we placed carefully and check where we placed everything. One error could mess up the whole game, and by using the habit of a mathematician "Take apart and put back together" we were able to successfully overcome this challenge. I grew in this habit because we used it every time we had a problem, and we had plenty of problems with our code. When we didn't know what went wrong, we would erase the code and start again. This was a long process but a useful one because that next time we put back together the code we were more careful.