Esempio n. 1
0
        public SuperSlimSwapAnalyzer(int n, bool proofFindingMode, FixerBreakerSwapMode swapMode)
        {
            _fixerResponses = new ulong[8192];

            ProofFindingMode = proofFindingMode;
            _swapMode        = swapMode;
            if (ProofFindingMode)
            {
                WinTreeInfo  = new Dictionary <SuperSlimBoard, GameTreeInfo>();
                LossTreeInfo = new Dictionary <SuperSlimBoard, GameTreeInfo>();
            }
        }
Esempio n. 2
0
        public SuperSlimMind(Graph g, bool proofFindingMode = false, FixerBreakerSwapMode swapMode = FixerBreakerSwapMode.SingleSwap, FixerBreakeReductionMode reductionMode = FixerBreakeReductionMode.None)
        {
            G = g;
            BuildLineGraph();

            ProofFindingMode = proofFindingMode;
            SwapMode         = swapMode;
            ReductionMode    = reductionMode;

            _coloringAnalyzer = new SuperSlimColoringAnalyzer(_lineG, GetEdgeColorList);
            _swapAnalyzer     = new SuperSlimSwapAnalyzer(g.N, proofFindingMode, swapMode);
            SubFixableMind    = new Lazy <SubFixableMind>(() => new SubFixableMind()
            {
                Mind = this, ForbiddenEdge = OnlyConsiderNearlyColorableBoards && MissingEdgeIndex >= 0 ? _edges[MissingEdgeIndex] : null
            });

            MissingEdgeIndex = -1;
        }