![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
DARTBOARD SCOREKEEPER
Advanced Programming in Matlab
Engineering 177
E177 is an upper division engineering quantitative science class that focuses on object oriented programming in Matlab. E177 is an elective course that engineers from all disciplines can take. I took the course because I wanted to get more comfortable programming in Matlab, as well as get exposed to an object-oriented programming mind frame.
Overall
Our homework in the class revolved around creating a game of chess. Our professor wrote a large amount of skeleton code to help us visualize what we were programming. The homeworks ranged from solving the 8 Queens Problem through recursive programming to playing against the AI in a real game of chess.
Homework
The other half of the class was a project we could create on our own. There was no restriction to the project except that each team member must create 2 unique classes of objects. My team created a Dartboard score keeper.​
Semester Project
Project Description:
Create a project of your choice while using object oriented programming in Matlab. Â You are prohibited from using the GUIDE command and will be judged on your creativity/coding ability.
Engineering 177
Semester Project

The Coders

Kenny Barton
Team Leader
I was responsible for the main class that set up and ran each game.  I also created the classic 501 game with the dart intel, results page, and clickable dartboard.

Kim Sover
Cricket Creator and GUI graphics
Kim played a crucial role in creating the Cricket game. Â She was also responsible for the imported photos on the introductory windows/cricket game window.

Ricky Soto
Around the World and Game Tester
Ricky created the Around the World Game mode and worked with the team on debugging and simulating all edge cases.
Idea Generation
Before we decided on what to do as our project, we all brainstormed ideas:
Kenny's Dartboard
I came up with the idea of a dartboard scorekeeper. I have a steel tip dartboard in my room and was getting tired of having to keep track of everyone’s scores. I wanted a solution that would streamline scoring and be user friendly.

Kim's Degree Generator
Kim proposed an idea of a degree generator. Its purpose would be to outline your semesters as a student, making it easier for kids to look ahead and learn where their schedules had fluidity while maintaining all the goals/classes they wanted to take. Kim, as well as many other MechEs, have been frustrated with how difficult it is to keep track of course requirements and when they’re offered.

Ricky's NBA stats sheet
Ricky is a huge Miami Heat fan, and wanted to create a database that pulls information from the internet and has different comparing functions. He wanted an NBA automatic stat sheet for his favorite players, or players that are playing well. He also wanted to see how the Heat’s season was laying out and how they were predicted to compare to the teams they had left to play. This foresight would allow him to better track their playoff chances.

We ended up choosing my proposal because we imagined the dartboard game would be more fun to write and more fun to debug. We settled on three classic game types to start with the coding: 501, Around the World, and Cricket.
Dividing the Work
The links below go more in depth on how each class was created and coded by each team member. If you are interested click on the button in each section to learn more about the thought process behind the coding.

Game Play
Introscreen
By entering the dartGame command in the command window, the game will initiate. Â The Figure 1 window will pop up and ask for the type of game, number of players, and the board design. Â All combinations are available except for the current version of cricket. Â Cricket has been designed for 2 players and when selected, it will automatically change the number of players to 2. Â The How to Play button generates a pop up menu that describes the game play for the currently selected game.

Download Game
Updated: 10/3/17 @ 5:26pm
I cannot attach the zipfile containing our projects code straight to my site. However, please feel free to contact me with an email address and I can send you the zipfile so you download and play darts to your hearts content. Check in every once in while for future updates, bug fixes, and new features.