         return f.t1 + f.t2
     }
     
-    private func frameScore(array: [Frame], i: Int) -> Int {
-        let xs = array[(i)..<(min(i + 3, array.endIndex))]
-        let total = sum(xs[i])
-        if isOpen(xs[i]) || xs.count == 1 { return total + fillBall(xs[i]) }
-        if isSpare(xs[i]) { return total + xs[i + 1].t1 }
-        if !isStrike(xs[i + 1]) || xs.count == 2 { return total + sum(xs[i + 1]) }
-        return total + xs[i + 1].t1 + xs[i + 2].t1
-    }
-    
 }

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
typealias Frame = (t1: Int, t2: Int, filler: Int?)

struct Game {

    var frames: [Frame] = []
    
    /// 'true' when 10 frames have been added.

    /// TODO: FIX omit incomplete frames, perhaps?
    /// - returns: A tuple score for each frame of the game containing the frame details, score and accumulative score.
    func scores() -> [(String,Int,Int)] {
        let scores = reduce(mapFrames(frames))
        var accum = 0
        return (0..<frames.endIndex).map{
            let score = scores[$0]
            accum += score
            return (displayString(frames[$0]), score, accum)
        }
