         return gameBoard != nil ? gameBoard!.dimension : 0
     }
     
-    func pointsForWinningLineThroughPositions(positions: [GameBoard.Position], inRect rect: CGRect) -> (CGPoint, CGPoint) {
-        let
-        winningRects = cellRectsWithPositions(positions, inRect: rect),
+    func pointsForWinningLineThroughPositions(positions: [GameBoard.Position], inPlatformRect platformRect: CGRect) -> (CGPoint, CGPoint) {
+        let
+        winningRects = cellRectsWithPositions(positions, inPlatformRect: platformRect),
         startRect    = winningRects.first!,
         endRect      = winningRects.last!,
         orientation  = winningLineOrientationForStartRect(startRect, endRect: endRect),

        tapLocation    = touch.locationInView(self),
        platformRect   = platformRectFromBorderRect(platformBorderRect),
        emptyPositions = gameBoard.emptyPositions,
        emptyCellRects = cellRectsWithPositions(emptyPositions, inRect: platformRect),
        emptyPositionsAndRects = Array(zip(emptyPositions, emptyCellRects))
        
        let tappedPositions = emptyPositionsAndRects.flatMap { (position, rect) in

        drawPlatformBorderInRect(borderRect)
        drawPlatformInRect(platformRect)
        drawGridLinesInRects(gridLineRects)
        drawMarksInPlatformRect(platformRect)
        
        if let winningPositions = winningPositions {
            let (startPoint, endPoint) = pointsForWinningLineThroughPositions(winningPositions, inPlatformRect: platformRect)
            drawWinningLineFrom(startPoint, to: endPoint)
        }
    }
