Darts! For The Win

ECE 4185 Spring 2013 Final Project
Alvin McNair
Roberto Pereira
Rahol Rajan
Jarius Tillman


The purpose of this project was to create a dart game score tracker. This program would not only keep track of the final needed score and all previous throws, it would detect the dart's position using computer vision.


1. When the program is first started, the user is prompted for player names and a final score.

2. The webcamera needs to be on the side of the board. To properly position it, a mask to align the inner and outer rings are made visible by pressing "Show Mask".

3. After the board is aligned, the game can begin.


1. The game starts with player 1 throwing a dart. After the dart is thrown whether it lands on the board or not, the player should press "Get Score".

2a. If there is a dart on the board, the application will correctly detect it's location, attribute a score to it, and update the GUI image with the dart.

2b.If the dart did not land on the board, the detector function will continue running, giving the player an opportunity to throw again.
NOTE: It is important that the board be aligned properly and stabilized to prevent misalignment midgame.

3. The player then removes their dart from the board and the second player's turn begins.

4.The next player takes their turn throwing a dart just as in Steps 1 and 2.

5a. The game ends when the final score is reached exactly by a player.

5b. If a player overthrows (i.e. player A hits zone 12 when they have 11 left to win), the last throw is voided and a turn is used up.

6. The players are then given an option to restart the game or close the application.


Here is a brief video of the game's setup and win condition protocols.

Link to Code Download

Darts!! Project Source


Project Overview
Problems Encountered
Future Work