示例#1
0
        private static void PrintResult(IPuzzleSolver day)
        {
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            Console.WriteLine("{0}{1}{2}", "-----", day.GetName(), "-----");
            day.ParseInput();
            Console.WriteLine("Result part 1: ");
            day.SolvePartOne();

            stopWatch.Stop();
            TimeSpan ts = stopWatch.Elapsed;

            PrintTimeElapsed(ts);

            stopWatch.Reset();

            stopWatch.Start();

            Console.WriteLine("Result part 2: ");
            day.SolvePartTwo();

            stopWatch.Stop();
            ts = stopWatch.Elapsed;
            PrintTimeElapsed(ts);
        }
示例#2
0
        protected static void CreateAndSolve()
        {
            IPuzzleSolver solver = PuzzleSolverFactory.Create();
            object        answer = solver.Solve();

            Console.WriteLine($"Answer for day {solver.Day} is {answer}");
        }
示例#3
0
        private static void SolveTask(IPuzzleSolver solver, int taskNumber)
        {
            var result = taskNumber == 1 ? solver.SolveFirstTask() : solver.SolveSecondTask();

            if (!string.IsNullOrEmpty(result))
            {
                Console.WriteLine($"Task {taskNumber}: {result}");
            }
        }
示例#4
0
 /// <summary>
 /// Base ctor for PuzzleGenerator
 /// </summary>
 /// <param name="puzzleGeneratorOptions"></param>
 /// <param name="puzzleSolver"></param>
 /// <param name="coordinateGenerator"></param>
 /// <param name="puzzleSolution">The solved puzzle to generate a playable puzzle from.</param>
 public PuzzleGenerator(IPuzzleGeneratorOptions puzzleGeneratorOptions,
                        IPuzzleSolver puzzleSolver,
                        IClueCoordinateGenerator coordinateGenerator,
                        Puzzle puzzleSolution)
 {
     _puzzleGeneratorOptions = puzzleGeneratorOptions ?? throw new ArgumentNullException(nameof(puzzleGeneratorOptions));
     _puzzleSolver           = puzzleSolver ?? throw new ArgumentNullException(nameof(puzzleSolver));
     _coordinateGenerator    = coordinateGenerator ?? throw new ArgumentNullException(nameof(coordinateGenerator));
     PuzzleSolution          = puzzleSolution ?? throw new ArgumentNullException(nameof(puzzleSolution));
 }
示例#5
0
 public TimedPuzzleSolver(IPuzzleSolver puzzleSolver, int runXTimes = 1)
 {
     _puzzleSolver  = puzzleSolver;
     this.runXTimes = runXTimes;
 }
 public PuzzleGameRunner(IPuzzleSolver puzzleSolver, IWordSearchFileParser wordSearchFileParser)
 {
     _puzzleSolver         = puzzleSolver;
     _wordSearchFileParser = wordSearchFileParser;
 }
示例#7
0
 /// <summary>
 /// Creates a puzzle generator for generating puzzles.
 /// </summary>
 /// <param name="puzzleFromSize">
 /// A function that constructs an empty <see cref="IPuzzle{TPuzzle}"/> of the desired type and shape.
 /// The requested puzzle size (i.e. side-length) is provided as an argument.
 /// </param>
 /// <param name="solver">
 /// A solver to be used to generate puzzles. The solver determines the rules or constraints
 /// a puzzle must satisfy.
 /// </param>
 public PuzzleGenerator(Func <int, TPuzzle> puzzleFromSize, IPuzzleSolver <TPuzzle> solver)
 {
     _puzzleFactory = puzzleFromSize;
     _solver        = solver;
 }
 public static void Init(TestContext context)
 {
     _puzzleSolver = new Solvers.DefaultPuzzleSolver();
 }
 public PuzzleController(IPuzzleSolver puzzleSolver)
 {
     _puzzleSolver = puzzleSolver;
 }