Example #1
0
        public static void Main()
        {
            var phrases = new Phrases(Phrases.DefaultPowerWords);
            if (Directory.Exists("logs"))
                Directory.Delete("logs", true);
            var map = Problems.LoadProblems()[9].ToMap(0);

            var model = new MainModel() {FastForwardSteps = 1};
            var solver = new AdaptiveSolver(phrases);
            model.Solver = solver.fast;
            model.History = new History(map);
            var form = new TetrisForm(model) {FastForwardSteps = model.FastForwardSteps};
            form.MovementRequested = dir => { map.Unit.Move(dir); };
            Application.Run(form);
        }
Example #2
0
 static double Run(Map map, List<WeightedMetric> metric)
 {
     var finder = new BfsNoMagicFinder();
     var mephala = new MephalaOracle(finder, metric);
     var phrases = new Phrases(Phrases.DefaultPowerWords);
     var solver = new Solver(phrases, finder, mephala);
     // Console.Write("Solving ");
     //Console.WriteLine(argument.Code.Select(z => Math.Round(z, 3).ToString()).Aggregate((a, b) => a + " " + b));
     var result = solver.Solve(map);
     //Console.WriteLine("Result" + result.Score + "\n\n");
     return result.Score;
 }
        private static SubmitionJson Solve(ProblemJson p, int seed)
        {
            var phrases = new Phrases(Phrases.DefaultPowerWords);

            var map = p.ToMap(seed);
            var finder = new MagicDfsFinder(phrases);
            var bestRes = new Solver(phrases, finder, new MephalaOracle(finder, WeightedMetric.Keening)).Solve(map);
            //            var s2 = new Solver(finder, new AzuraOracle()).Solve(map);
            //            var bestRes = new[] { s1, s2 }.OrderByDescending(s => s.Score).First();
            return new SubmitionJson
            {
                problemId = p.id,
                seed = seed,
                solution = phrases.ToOriginalPhrase(bestRes.Commands),
                tag = bestRes.Name + "-" + DateTime.Now
            };
        }
Example #4
0
 public void ToOriginal()
 {
     var phrases = new Phrases(Phrases.DefaultPowerWords);
     var original = string.Join("", phrases.All);
     var canonical = original.ToDirections().ToPhrase();
     Console.WriteLine(canonical);
     var converted = phrases.ToOriginalPhrase(canonical);
     Console.WriteLine(converted);
     Assert.AreEqual(original, converted);
 }
Example #5
0
 public void Test()
 {
     var ps = new Phrases(Phrases.DefaultPowerWords).AsDirections.Select(p => p.ToPhrase());
     foreach (var p in ps)
         Console.WriteLine(p);
 }
Example #6
0
 public void Score_NestedPhrase()
 {
     var phrases = new Phrases(Phrases.DefaultPowerWords);
     var testPhrase = "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.".ToDirections().ToPhrase();
     var originalPhrase = phrases.ToOriginalPhrase(testPhrase);
     Assert.That(phrases.GetPowerScore(originalPhrase), Is.EqualTo(714));
 }
Example #7
0
 public void GetPowerScore()
 {
     var phrases = new Phrases(Phrases.DefaultPowerWords);
     Assert.That(phrases.GetPowerScore("Ei!"), Is.EqualTo(306));
     Assert.That(phrases.GetPowerScore("Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn."), Is.EqualTo(714));
 }