Chloe Brattoli, Chris Tuttle, Tristan Hamid, Nick Wagner
Table of Contents
1. Project Management
1A. Team Working Agreement
1B. Individual Responsibility Agreement
1C. Project Schedule
1D. Meeting Notes
2. Business Plan
2A. User Identification and Interviews
2B. Electronic/Print Advertisement
2C. Pitch Video with Demonstration
3. Software Documentation
3A. Introduction
3B. User Manuals
3C. Program Description for Developers
3D. Final Algorithm and Pseudocode
3E. Final Program with Comments
3F. Discussion
3G. Conclusions and Recommendations
3H. References
MATLAB Games Created
Yahtzee (Player vs Player)
War (Player vs. Computer)
Group F – Tristan Hamid, Chris Tuttle, Nick Wagner, Chloe Brattoli Software Design Project
Instructor – Mr. Cohen GTA – Mr. Richetti December 12, 2018
Executive Summary
In this lab, the objective was to combine coding skills with teamwork to create working MATLAB games and accompanying documentation to market to an intended player audience. The importance of the lab is to learn how to apply the MATLAB skills taught in class to create a real life application of coding. The motivation behind the lab is to become better programmers and technical communicators.
The results of the lab include two fully functioning game simulations. These games are played through various user inputs and programmed computer outputs. In War, the simpler of the two MATLAB minigames, the user simply presses ‘1’ and ‘Enter’ to place down each card that will be used against the computer. This process continues throughout the entire game until either the computer or player runs out of cards and therefore loses the game. For Yahtzee, each player rolls die for a series of three rounds in order to get the best possible combination of numbers. The game is controlled through the keyboard’s number pad which is used to choose different die and final combinations to store player points. Once the electronic scorecard is filled, the player with the highest score wins the game. Although both games are played very differently, the common MATLAB code for each game is fundamentally similar. Within each game, for loops, while loops, boolean logic, variables, loading data files, arrays, and user inputs were manipulated to assist in various game play options (A.1-3; B.1-3). Both games can be played error free as long as the player follows the instructions given. However, there is a potential error in both of the games where the game can be “broken” if the player inputs a value not accounted for in the code. One possible way to fix this would be by putting the entire code into a loop that continuously asks for an input until a valid input is entered.
Overall, this lab was a useful way to apply MATLAB skills into a fun and challenging project that is not just a class application assignment. Many of the MATLAB loops and logic taught in class were used in unique ways to create gameplay that is identical to how the games are actually played in real life. Based on the coding process, the team recommends that the best way to create a game is to take your hands off the keyboard and think through how the code will flow first and then begin to type the game (3H. References 1).
Appendix A: Examples of War Code Characteristics
Figure 1: For loop
Figure 2: While Loop
Figure 3: If-Else Statements
Appendix B: Examples of Yahtzee Code Characteristics
Figure 1: For Loop
Figure 2: While Loop
Figure 3: If-Else Statements