// Operator: StatisticsValue - StatisticsValue /// Subtract one value from another, piecewise, and return the result. public static PuzzleStatistics Subtract(PuzzleStatistics value1, PuzzleStatistics value2) { PuzzleStatistics outputValue = new PuzzleStatistics(); outputValue.CCWRotations = value1.CCWRotations - value2.CCWRotations; outputValue.CWRotations = value1.CWRotations - value2.CWRotations; outputValue.HorizontalFlips = value1.HorizontalFlips - value2.HorizontalFlips; outputValue.SecondsTaken = value1.SecondsTaken - value2.SecondsTaken; outputValue.ShapesUsed = value1.ShapesUsed - value2.ShapesUsed; outputValue.VerticalFlips = value1.VerticalFlips - value2.VerticalFlips; outputValue.HintsUsed = value1.HintsUsed - value2.HintsUsed; return(outputValue); }
// Operator: StatisticsValue + StatisticsValue /// Add one value to another, piecewise, and return the result. public static PuzzleSetStatistics Add(PuzzleSetStatistics value1, PuzzleStatistics value2) { PuzzleSetStatistics outputValue = new PuzzleSetStatistics(); outputValue.CCWRotations = value1.CCWRotations + value2.CCWRotations; outputValue.CWRotations = value1.CWRotations + value2.CWRotations; outputValue.HorizontalFlips = value1.HorizontalFlips + value2.HorizontalFlips; outputValue.SecondsTaken = value1.SecondsTaken + value2.SecondsTaken; outputValue.ShapesUsed = value1.ShapesUsed + value2.ShapesUsed; outputValue.VerticalFlips = value1.VerticalFlips + value2.VerticalFlips; outputValue.HintsUsed = value1.HintsUsed + value2.HintsUsed; outputValue.PuzzlesSolved = value1.PuzzlesSolved; outputValue.PuzzlesSolved++; return(outputValue); }