public ProblemSpec Get(int id) { var s = ProblemSpec.Parse(File.ReadAllText(GetFilename(id))); s.id = id; return(s); }
public void PaintOne(int index) { var painter = new Painter(); var filename = index.ToString("000") + ".spec.txt"; var content = File.ReadAllText(Path.Combine(Paths.ProblemsDir(), filename)); var spec = ProblemSpec.Parse(content).MoveToOrigin(); Console.WriteLine(spec.ToString()); var bmp = MakeBitmap(painter, spec); var file = Path.Combine(Paths.ProblemsDir(), filename + ".bmp"); bmp.Save(file); Process.Start(file); }
public void MovableToOrigin() { var x = ProblemSpec.Parse(@"1 4 1267650600228229401496703205376,1267650600228229401496703205376 1267650600228229401496703205377,1267650600228229401496703205376 1267650600228229401496703205377,1267650600228229401496703205377 1267650600228229401496703205376,1267650600228229401496703205377 4 1267650600228229401496703205376,1267650600228229401496703205376 1267650600228229401496703205376,1267650600228229401496703205377 1267650600228229401496703205377,1267650600228229401496703205376 1267650600228229401496703205377,1267650600228229401496703205377 1267650600228229401496703205376,1267650600228229401496703205376 1267650600228229401496703205377,1267650600228229401496703205376 1267650600228229401496703205376,1267650600228229401496703205377 1267650600228229401496703205377,1267650600228229401496703205377").MoveToOrigin(); }
public void PaintProblems() { var painter = new Painter(); var ps = from i in Enumerable.Range(1, int.MaxValue) let filename = i.ToString("000") + ".spec.txt" let filepath = Path.Combine(Paths.ProblemsDir(), filename) select filepath; foreach (var path in ps.TakeWhile(File.Exists)) { Console.WriteLine($"writing {path}"); var content = File.ReadAllText(path); var spec = ProblemSpec.Parse(content); var bmp = MakeBitmap(painter, spec); bmp.Save(path + ".bmp"); } }
public void BeParsable() { var input = @"1 4 0,0 1,0 1/2,1/2 0,1/2 5 0,0 1,0 1,0 1/2,1/2 1/2,1/2 0,1/2 0,1/2 0,0 0,0 1/2,1/2"; ProblemSpec spec = ProblemSpec.Parse(input); Console.WriteLine(spec); spec.Polygons.Length.Should().Be(1); spec.Segments.Length.Should().Be(5); spec.ToString().Should().Be(input); }
public IEnumerable <ProblemSpec> GetAll() { return(Directory.GetFiles(problemsDir, "*.spec.txt") .Select(p => ProblemSpec.Parse(File.ReadAllText(p), ExtractProblemId(p))).ToList()); }
public ProblemSpec Find(int id) { return(File.Exists(GetFilename(id)) ? ProblemSpec.Parse(File.ReadAllText(GetFilename(id))) : null); }