top of page
darts.jpg
Engineering Plans
Mechanical Engineer's Sketch
Engineering Sketch
Soldering circuit board
Circuit Board

DARTBOARD SCOREKEEPER

Matlab Dartboard: Welcome

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

Matlab Dartboard: Testimonials

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

normal.jpg
Matlab Dartboard: Quote

The Coders

Matlab Dartboard: Team Members
faceshot.PNG

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.jpg

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.jpg

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.

IMG_2474.JPG

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.

flowchart_edited.png

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.

IMG_2479_edited.jpg

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.

Matlab Dartboard: News

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.

dartGame/Dartboard/501

dartGame - the mastermind behind the whole operation.  This class takes in all other class types and keeps track of the overall winner and losers.
Dartboard - the interactive electronic dartboard used to simulate real life shots.
501 - the most classic dart game.

User/Around the World

User - what makes each player feel connected to the game.  Used to improve the user experience and eventually will allow people to sign in and load career profiles.
Around the World - 1...2...3...20 I win! The toughest part of the game is figuring out where the next sliver is.

Cricket

The most complex game on our software

Matlab Dartboard: Products
intro screen.jpg

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.

Matlab Dartboard: About

Games

Click on a game button below to see screenshots of each game.

Matlab Dartboard: Projects
IMG_2475.JPG

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.

Matlab Dartboard: About

Follow

  • LinkedIn

Contact

805 757 1685

Address

2908 Channing Way
Berkeley, California 94704
USA

©2017 by Kenneth Barton. Proudly created with Wix.com

bottom of page