public override void Calc() { map = input.Replace("\r\n", "\n"); scaner.map = map; scaner.wd = map.IndexOf("\n") + 1; var srch = input.Replace(".", "").Replace("\n", "").Replace("\r", "").Replace("#", ""); var n = new scaner.node(); n.name = '@'; scaner.nodes.Add('@', n); foreach (char c in srch) { if (char.IsLower(c) && !scaner.nodes.ContainsKey(c)) { n = new scaner.node(); n.name = c; scaner.nodes.Add(c, n); // Console.WriteLine(c); } } foreach (var c in scaner.nodes.Keys) { var s = new scaner(); s.scanFrom(c); } /* * foreach (var a in scaner.nodes) * { * Console.WriteLine(); * foreach (var b in a.Value.links.Keys) * { * Console.WriteLine("{0} -> {1} : {2} : {3}", a.Key, b, a.Value.links[b], a.Value.locks[b]); * } * } */ Console.WriteLine("Wait for it..."); foreach (var a in scaner.nodes) { a.Value.genBinMask(); } int st = scaner.node.MaskAdd(0, scaner.node.charToInt('@')); scaner.node.scan('@'); output = "" + scaner.node.min; }
public override void Calc() { map = input.Replace("\r\n", "\n"); scaner.map = map; scaner.wd = map.IndexOf("\n") + 1; var srch = input.Replace(".", "").Replace("\n", "").Replace("\r", "").Replace("#", ""); var n = new scaner.node(); n.name = '@'; scaner.nodes.Add('@', n); foreach (char c in srch) { if (char.IsLower(c) && !scaner.nodes.ContainsKey(c)) { n = new scaner.node(); n.name = c; scaner.nodes.Add(c, n); // Console.WriteLine(c); } } foreach (var c in scaner.nodes.Keys) { var s = new scaner(); s.scanFrom(c); } foreach (var a in scaner.nodes) { Console.WriteLine(); foreach (var b in a.Value.paths.Keys) { Console.WriteLine("{0} -> {1} : {2} : {3}", a.Key, b, a.Value.paths[b], a.Value.locks[b]); } } foreach (var a in scaner.nodes) { a.Value.genLocks2(); } HashSet <char> st = new HashSet <char>(); st.Add('@'); output = "" + scaner.nodes['@'].search(st, 0); }
public void GetDevicefromBase() { int scancount = _ge.scaners.Count(sc => sc.ids == 1); if (scancount == 0) { SelectDevice(); } else { scaner s = _ge.scaners.First(sc => sc.ids == 1); _currentscaner = new Scaner(s.currentscanername, Scaner.StringToScanerType(s.driver), _wh); } }
private void SaveScaner() { int scancount = _ge.scaners.Count(sc => sc.ids == 1); if (scancount == 0) { scaner s = scaner.Createscaner(0, _currentscaner.Name, _currentscaner.Type.ToString()); _ge.scaners.AddObject(s); } else { scaner s = _ge.scaners.First(sc => sc.ids == 1); s.currentscanername = _currentscaner.Name; s.driver = _currentscaner.Type.ToString(); } _ge.SaveChanges(); }
public override void Calc() { map = input.Replace("\r\n", "\n"); int wd = map.IndexOf("\n") + 1; int center = map.IndexOf('@'); int sx = center % wd; int sy = center / wd; StringBuilder sb = new StringBuilder(map); sb[sx - 1 + (sy - 1) * wd] = '@'; sb[sx + (sy - 1) * wd] = '#'; sb[sx + 1 + (sy - 1) * wd] = '$'; sb[sx - 1 + sy * wd] = '#'; sb[sx + sy * wd] = '#'; sb[sx + 1 + sy * wd] = '#'; sb[sx - 1 + (sy + 1) * wd] = '*'; sb[sx + (sy + 1) * wd] = '#'; sb[sx + 1 + (sy + 1) * wd] = '&'; map = sb.ToString(); //Console.WriteLine(map); var srch = input.Replace(".", "").Replace("\n", "").Replace("\r", "").Replace("#", ""); var n1 = new scaner.node(); n1.name = '@'; scaner.nodes.Add('@', n1); var n2 = new scaner.node(); n2.name = '$'; scaner.nodes.Add('$', n2); var n3 = new scaner.node(); n3.name = '&'; scaner.nodes.Add('&', n3); var n4 = new scaner.node(); n4.name = '*'; scaner.nodes.Add('*', n4); scaner.map = map; scaner.wd = wd; foreach (char c in srch) { if (char.IsLower(c) && !scaner.nodes.ContainsKey(c)) { scaner.node n = new scaner.node(); n.name = c; scaner.nodes.Add(c, n); //Console.WriteLine(c); } } foreach (var c in scaner.nodes.Keys) { var s = new scaner(); s.scanFrom(c); } /* * foreach (var a in scaner.nodes) * { * Console.WriteLine(); * foreach (var b in a.Value.links.Keys) * { * Console.WriteLine("{0} -> {1} : {2} : {3}", a.Key, b, a.Value.links[b], a.Value.locks[b]); * } * } */ //Console.WriteLine("Wait for it..."); foreach (var a in scaner.nodes) { a.Value.genBinMask(); } // int st = scaner.node.MaskAdd(0, scaner.node.charToInt('@')); scaner.node.scan(new char[] { '@', '$', '&', '*' }); output = "" + scaner.node.min; }