예제 #1
0
 public IList <WoodenBoardResults> Cuts(WoodenBoard woodenBoard, WoodenBoardPattern woodenBoardPattern)
 {
     return
         (CreateCuts(woodenBoard, woodenBoardPattern, woodenBoard.Thickness)
          .Where(r => r.WoodenBoards.Select(w => w.Area).Sum() == woodenBoard.Area)
          .Distinct(new WoodenBoardResultsEquality())
          .ToList());
 }
예제 #2
0
        private static IEnumerable <WoodenBoardResults> CreateCuts(WoodenBoard woodenBoard, WoodenBoardPattern woodenBoardPattern, int thickness)
        {
            var patternWidth  = woodenBoardPattern.Width;
            var patternHeight = woodenBoardPattern.Height;

            var boardWidth  = woodenBoard.Width;
            var boardHeight = woodenBoard.Height;

            yield return(CreateWoodenBoardResult(patternWidth, patternHeight, boardWidth, boardHeight, thickness));

            yield return(CreateWoodenBoardResult(patternHeight, patternWidth, boardWidth, boardHeight, thickness));

            yield return(CreateWoodenBoardResult2(patternWidth, patternHeight, boardHeight, boardWidth, thickness));

            yield return(CreateWoodenBoardResult2(patternHeight, patternWidth, boardHeight, boardWidth, thickness));
        }