Welcome Page

Table of Contents

1. Project Management

  • Team Working Agreement
  • Individual Responsibility Agreement
  • Project Schedule – list of when each aspect of project was done and who did it
  • Meeting Notes – list of tasks group members accomplished during meetings

2. Business Plan

  • User Identification and Interviews – full interview of two different people, one before project and one after playing the finished game
  • Electronic Print and Advertisement
  • Pitch Video with Demonstration

3. Software Documentation

  • Introduction – brief description of what to expect from the games
  • User Manual – description of the coding logic behind the games in simple terms for all audiences
  • Program Description for Developers – full technical description of the game codes, specifically intended for developers
  • Final Flowchart – visual image of the logic for the games in the form of flowcharts
  • Final Program with Comments – complete code of games
  • Discussion – description of the whole testing process, including obstacles faced and solutions to them
  • Conclusion and Recommendations – contains the group’s thoughts regarding the project, including valuable lessons that were learned and possible changed for the games moving forward
  • References – list of resources/tools utilized in finishing the project

Executive Summary

Background & Purpose: In this project, the team collaborated on the development of a game using MatLab. The team chose to create an online version of Connect Four (player vs. player) on MatLab. Careful attention was paid to planning, documenting and problem solving to simulate a real-world programming experience.

Results & Analysis: The team first had to create a pseudo code and flowchart of the Connect Four logic. Next, sprites must be drawn using pixel art to represent the “characters” and elements of the game. However, the team utilized a pre-created source for the coins and boards. The actual code was then written over the span of several days. Comments were utilized throughout the code to keep track of what the program was doing. The beginning of the code merely served to set up the game engine and board display, while initializing several variables so that the game starts properly each time. The GetMouseInput function was utilized to receive the input from the user regarding which column to drop the coin in. The team struggled to write the logic for checking winning combinations but eventually came up with the solution of looping through each combination, checking horizontal alignments, then vertical and finally diagonal.

Looking back at the process, the pseudo code and flowchart helped to make the game design easier by enabling the team to map out the code and visually represent the flow of the logic. This is not a surprise as most long tasks in life require some form of planning to achieve success. When writing code, the use of comments is heavily beneficial for both the developer and other developers to understand what the program is doing. This is especially helpful when the script is thousands of lines long, where it is easy to get lost. Lastly, logical thinking and problem solving are important skills to have as an engineer and programmer, as seen in this project. Oftentimes, programmers and engineers come across road blocks that deter them from finishing the final product. When the team was lost on how to check for winning combinations, teamwork and logical thinking was how a solution was found. This project would have no doubt been many times harder if less effort was put into planning, documenting and logical thinking.

Conclusion & Recommendation: Although engineers don’t require programming to fulfill their work, learning how to code efficiently and intelligently can serve to reduce the amount of work as well as making the problem easier. Through this project, the team coded a Connect Four program that demonstrated the importance of plan making, documentation and logical thinking, which are all skills that engineers should hone. In other words, the benefits of programming does not only include helping to make problems easier and more efficient to solve, but also to sharpen the skills and features of a successful engineer.