Ejemplo n.º 1
0
    private static int Rank(AdventPuzzles puzzles, AdventDate date)
    {
        var sw    = Stopwatch.StartNew();
        var total = 0;

        var durations = puzzles.Matching(date)
                        .Where(puzzle => !puzzle.Date.Matches(new AdventDate(default, 25, 2)))
Ejemplo n.º 2
0
    public static int Main(string[] args)
    {
        if (args?.Length < 1)
        {
            return(Usage());
        }

        var puzzles = AdventPuzzles.Load();

        if (!AdventDate.TryParse(args[0], out var date))
        {
            return(InvalidDay(args[0]));
        }

        if (date.SpecifiesYearDay() && !puzzles.Contains(date))
        {
            return(Generate(date));
        }
        else if (args.Length == 2 && args[1] == "-rank")
        {
            return(Rank(puzzles, date));
        }
        else
        {
            var matching = puzzles.Matching(date);
            if (matching.Any())
            {
                foreach (var puzzle in matching)
                {
                    puzzle.Run();
                }
                return(Success);
            }
            else
            {
                return(NoMethod(date));
            }
        }
    }