public GNPXApp000(NuPz_Win pGNP00win) { List <string> DirLst = Directory.EnumerateDirectories(".").ToList(); LanguageLst = new List <string>(); LanguageLst.Add("en"); foreach (var P in DirLst) { var Q = P.Replace(".", "").Replace("\\", ""); if (Q == "en") { continue; } if (Q.Length == 2 || (Q[2] == '-' && Q.Length == 5)) { LanguageLst.Add(Q); } } LanguageLst = LanguageLst.FindAll(P => (P.Length == 2 || (P[2] == '-' && P.Length == 5))); LanguageLst.Sort(); this.pGNP00win = pGNP00win; cellSizeP = cellSize + lineWidth; SDKCntrl = new SDK_Ctrl(this, 0); GNPX_Eng = new GNPZ_Engin(this, new UPuzzle()); UPuzzleMan.pGNPX_Eng = GNPX_Eng; SDK_Ctrl.pGNPX_Eng = GNPX_Eng; PTrans = new PuzzleTrans(this); SolverLst2 = new List <UMthdChked>(); }
} //int[,] public GNPX_AnalyzerMan(GNPZ_Engin pENGN) { SolverLst0 = new List <UAlgMethod>(); this.pENGN = pENGN; SprLKsMan = new SuperLinkMan(this); var SSingle = new SimpleSingleGen(this); SolverLst0.Add(new UAlgMethod(1, "LastDigit", 1, SSingle.LastDigit)); SolverLst0.Add(new UAlgMethod(2, "NakedSingle", 1, SSingle.NakedSingle)); SolverLst0.Add(new UAlgMethod(3, "HiddenSingle", 1, SSingle.HiddenSingle)); var GLTech = new GeneralLogicGen(this); SolverLst0.Add(new UAlgMethod(4, " GeneralLogic", 2, GLTech.GeneralLogicExnm, true)); var LockedCand = new LockedCandidateGen(this); SolverLst0.Add(new UAlgMethod(5, "LockedCandidate", 2, LockedCand.LockedCandidate)); var LockedSet = new LockedSetGen(this); SolverLst0.Add(new UAlgMethod(10, "LockedSet(2D)", 3, LockedSet.LockedSet2)); SolverLst0.Add(new UAlgMethod(12, "LockedSet(3D)", 4, LockedSet.LockedSet3)); SolverLst0.Add(new UAlgMethod(14, "LockedSet(4D)", 5, LockedSet.LockedSet4)); SolverLst0.Add(new UAlgMethod(16, "LockedSet(5D)", -6, LockedSet.LockedSet5)); //complementary to 4D SolverLst0.Add(new UAlgMethod(18, "LockedSet(6D)", -6, LockedSet.LockedSet6)); //complementary to 3D SolverLst0.Add(new UAlgMethod(20, "LockedSet(7D)", -6, LockedSet.LockedSet7)); //complementary to 2D SolverLst0.Add(new UAlgMethod(11, "LockedSet(2D)Hidden", 3, LockedSet.LockedSet2Hidden)); SolverLst0.Add(new UAlgMethod(13, "LockedSet(3D)Hidden", 4, LockedSet.LockedSet3Hidden)); SolverLst0.Add(new UAlgMethod(15, "LockedSet(4D)Hidden", 5, LockedSet.LockedSet4Hidden)); SolverLst0.Add(new UAlgMethod(17, "LockedSet(5D)Hidden", -6, LockedSet.LockedSet5Hidden)); //complementary to 4D SolverLst0.Add(new UAlgMethod(19, "LockedSet(6D)Hidden", -6, LockedSet.LockedSet6Hidden)); //complementary to 3D SolverLst0.Add(new UAlgMethod(21, "LockedSet(7D)Hidden", -6, LockedSet.LockedSet7Hidden)); //complementary to 2D var Fish = new FishGen(this); SolverLst0.Add(new UAlgMethod(30, "XWing", 4, Fish.XWing)); SolverLst0.Add(new UAlgMethod(31, "SwordFish", 5, Fish.SwordFish)); SolverLst0.Add(new UAlgMethod(32, "JellyFish", 6, Fish.JellyFish)); SolverLst0.Add(new UAlgMethod(33, "Squirmbag", -6, Fish.Squirmbag)); //complementary to 4D SolverLst0.Add(new UAlgMethod(34, "Whale", -6, Fish.Whale)); //complementary to 3D SolverLst0.Add(new UAlgMethod(35, "Leviathan", -6, Fish.Leviathan)); //complementary to 2D SolverLst0.Add(new UAlgMethod(40, "Finned XWing", 5, Fish.FinnedXWing)); SolverLst0.Add(new UAlgMethod(41, "Finned SwordFish", 6, Fish.FinnedSwordFish)); SolverLst0.Add(new UAlgMethod(42, "Finned JellyFish", 6, Fish.FinnedJellyFish)); SolverLst0.Add(new UAlgMethod(43, "Finned Squirmbag", 7, Fish.FinnedSquirmbag)); //not complementary with fin SolverLst0.Add(new UAlgMethod(44, "Finned Whale", 7, Fish.FinnedWhale)); //not complementary with fin SolverLst0.Add(new UAlgMethod(45, "Finned Leviathan", 7, Fish.FinnedLeviathan)); //not complementary with fin SolverLst0.Add(new UAlgMethod(90, "Franken/MutantFish", 8, Fish.FrankenMutantFish)); SolverLst0.Add(new UAlgMethod(91, "Finned Franken/Mutant Fish", 8, Fish.FinnedFrankenMutantFish)); // SolverLst0.Add( new UAlgMethod( 100, "EndoFinned F/M Fish", 11, Fish.EndoFinnedFMFish ) ); // SolverLst0.Add( new UAlgMethod( 101, "Cannibalistic F/M Fish", 11, Fish.CannibalisticFMFish ) ); var nxgCellLink = new NXGCellLinkGen(this); SolverLst0.Add(new UAlgMethod(50, "Skyscraper", 5, nxgCellLink.Skyscraper)); SolverLst0.Add(new UAlgMethod(51, "EmptyRectangle", 5, nxgCellLink.EmptyRectangle)); SolverLst0.Add(new UAlgMethod(52, "XY-Wing", 6, nxgCellLink.XYwing)); SolverLst0.Add(new UAlgMethod(53, "W-Wing", 7, nxgCellLink.Wwing)); SolverLst0.Add(new UAlgMethod(55, "RemotePair", 6, nxgCellLink.RemotePair)); SolverLst0.Add(new UAlgMethod(56, "XChain", 7, nxgCellLink.XChain)); SolverLst0.Add(new UAlgMethod(57, "XYChain", 7, nxgCellLink.XYChain)); SolverLst0.Add(new UAlgMethod(60, "Color-Trap", 6, nxgCellLink.Color_Trap)); SolverLst0.Add(new UAlgMethod(61, "Color-Wrap", 6, nxgCellLink.Color_Wrap)); SolverLst0.Add(new UAlgMethod(62, "MultiColor-Type1", 7, nxgCellLink.MultiColor_Type1)); SolverLst0.Add(new UAlgMethod(63, "MultiColor-Type2", 7, nxgCellLink.MultiColor_Type2)); var ALSTechP = new AALSTechGen(this); //fakeALS(2次ALS) SolverLst0.Add(new UAlgMethod(59, "SueDeCoq", 6, ALSTechP.SueDeCoq)); //var SimpleXYZ=new SimpleUVWXYZwingGen(this); // -----------> Replaced with ALS version //SolverLst0.Add( new UAlgMethod( 70, "XYZ-Wing", 6, SimpleXYZ.XYZwing ) ); //SolverLst0.Add( new UAlgMethod( 71, "WXYZ-Wing", 6, SimpleXYZ.WXYZwing ) ); //SolverLst0.Add( new UAlgMethod( 72, "VWXYZ-Wing", 7, SimpleXYZ.VWXYZwing ) ); //SolverLst0.Add( new UAlgMethod( 73, "UVWXYZ-Wing", 7, SimpleXYZ.UVWXYZwing ) ); var ALSTech = new ALSTechGen(this); // ALS version SolverLst0.Add(new UAlgMethod(75, "XYZ-WingALS", 8, ALSTech.XYZwingALS)); SolverLst0.Add(new UAlgMethod(80, "ALS-XZ", 8, ALSTech.ALS_XZ)); SolverLst0.Add(new UAlgMethod(81, "ALS-XY-Wing", 9, ALSTech.ALS_XY_Wing)); SolverLst0.Add(new UAlgMethod(82, "ALS-Chain", 10, ALSTech.ALS_Chain)); SolverLst0.Add(new UAlgMethod(83, "ALS-DeathBlossom", 10, ALSTech.ALS_DeathBlossom)); SolverLst0.Add(new UAlgMethod(83, "ALS-DeathBlossomExt", 10, ALSTech.ALS_DeathBlossomExt)); var NLTech = new NiceLoopGen(this); SolverLst0.Add(new UAlgMethod(95, "NiceLoop", 11, NLTech.NiceLoop)); var GNLTech = new GroupedLinkGen(this); //SolverLst0.Add( new UAlgMethod( 96, "GroupedNiceLoop", 12, GNLTech.GroupedNiceLoop ) ); SolverLst0.Add(new UAlgMethod(97, "GroupedNiceLoopEx", 12, GNLTech.GroupedNiceLoopEx)); //Updated to Radiation Search //SolverLst0.Add( new UAlgMethod( 103, "Kraken Fish", 12, GNLTech.KrakenFish ) ); //SolverLst0.Add( new UAlgMethod( 104, "Kraken FinnedFish", 12, GNLTech.KrakenFinnedFish ) ); SolverLst0.Add(new UAlgMethod(105, "Kraken FishEx", 12, GNLTech.KrakenFishEx)); SolverLst0.Add(new UAlgMethod(106, "Kraken FinnedFishEx", 12, GNLTech.KrakenFinnedFishEx)); SolverLst0.Add(new UAlgMethod(112, "ForceChain_CellEx", 12, GNLTech.ForceChain_CellEx)); SolverLst0.Add(new UAlgMethod(114, "ForceChain_HouseEx", 12, GNLTech.ForceChain_HouseEx)); SolverLst0.Add(new UAlgMethod(116, "ForceChain_ContradictionEx", 12, GNLTech.ForceChain_ContradictionEx)); SolverLst0.Sort((a, b) => (a.ID - b.ID)); }