public SafetyMap(GoBoard goBoard, SafetySolverType pSafetySolverType)
        {
            Board  = goBoard;
            Safety = new SafetyStatus[Board.Coord.BoardArea];

            SafetySolverType = pSafetySolverType;
            Execute();
        }
Example #2
0
        public SafetyMap(GoBoard goBoard, SafetySolverType pSafetySolverType)
        {
            Board = goBoard;
            Safety = new SafetyStatus[Board.Coord.BoardArea];

            SafetySolverType = pSafetySolverType;
            Execute();
        }
Example #3
0
        public GoBoard(GoBoard goBoard, bool includeUndo)
        {
            Coord = CoordinateSystem.GetCoordinateSystem(goBoard.BoardSize);
            SafetySolver = goBoard.SafetySolver;
            Komi = goBoard.Komi;
            Clear();

            foreach (KeyValuePair<Color, int> lMove in goBoard.MoveList)
                PlayStone(lMove.Value, lMove.Key, includeUndo);
        }
Example #4
0
        public static SafetySolverType ToType(string name)
        {
            SafetySolverType lSafetySolverType = SafetySolverType.Unassigned;

            if (!Instance.Dictionary.TryGetValue(name.Trim().ToLower(), out lSafetySolverType))
            {
                return(SafetySolverType.Unassigned);
            }

            return(lSafetySolverType);
        }
        public GoBoard(GoBoard goBoard, bool includeUndo)
        {
            Coord        = CoordinateSystem.GetCoordinateSystem(goBoard.BoardSize);
            SafetySolver = goBoard.SafetySolver;
            Komi         = goBoard.Komi;
            Clear();

            foreach (KeyValuePair <Color, int> lMove in goBoard.MoveList)
            {
                PlayStone(lMove.Value, lMove.Key, includeUndo);
            }
        }
        public int CountSafePoints(Color color, SafetySolverType pSafetySolverType)
        {
            if ((SafetyStatusMap != null) && (SafetyStatusMap.SafetySolverType == pSafetySolverType))
            {
                CreateEnclosedRegions();
                return(SafetyStatusMap.CountSafePoints(color));
            }
            else
            {
                ColorEnclosedRegions lColorEnclosedRegions = ColorEnclosedRegions;
                ColorEnclosedRegions = null;
                CreateEnclosedRegions();
                SafetyMap lSafetyStatusMap = new SafetyMap(this, pSafetySolverType);

                ColorEnclosedRegions = lColorEnclosedRegions;

                return(lSafetyStatusMap.CountSafePoints(color));
            }
        }
Example #7
0
        public static ISafetySolverInterface CreateFactory(SafetySolverType safetySolverType)
        {
            switch (safetySolverType)
            {
            case SafetySolverType.Benson: return(new SolverBenson());

            case SafetySolverType.Muller97: return(new SolverMuller(1997));

            case SafetySolverType.Muller04: return(new SolverMuller(2004));

            case SafetySolverType.Muller97Plus: return(new SolverExtended(SafetySolverType.Muller97));

            case SafetySolverType.Muller04Plus: return(new SolverExtended(SafetySolverType.Muller04));

            case SafetySolverType.BensonPlus: return(new SolverExtended(SafetySolverType.Benson));

            default: return(new SolverNull());
            }
        }
 public void SetSafetySolver(SafetySolverType pSafetySolverType)
 {
     SafetySolver         = pSafetySolverType;
     SafetyStatusMap      = null;
     ColorEnclosedRegions = null;
 }
 public GoBoard(int boardSize)
 {
     Coord        = CoordinateSystem.GetCoordinateSystem(boardSize);
     SafetySolver = SafetySolverType.Muller04;
     Clear();
 }
Example #10
0
 protected void Add(string typeName, SafetySolverType solverType)
 {
     Dictionary.Add(typeName, solverType);
 }
Example #11
0
 public void SetSafetySolver(SafetySolverType pSafetySolverType)
 {
     SafetySolver = pSafetySolverType;
     SafetyStatusMap = null;
     ColorEnclosedRegions = null;
 }
Example #12
0
        public int CountSafePoints(Color color, SafetySolverType pSafetySolverType)
        {
            if ((SafetyStatusMap != null) && (SafetyStatusMap.SafetySolverType == pSafetySolverType))
            {
                CreateEnclosedRegions();
                return SafetyStatusMap.CountSafePoints(color);
            }
            else
            {
                ColorEnclosedRegions lColorEnclosedRegions = ColorEnclosedRegions;
                ColorEnclosedRegions = null;
                CreateEnclosedRegions();
                SafetyMap lSafetyStatusMap = new SafetyMap(this, pSafetySolverType);

                ColorEnclosedRegions = lColorEnclosedRegions;

                return lSafetyStatusMap.CountSafePoints(color);
            }
        }
Example #13
0
        public static int CZD()
        {
            GameRecords lGameRecords = new GameRecords();

            lGameRecords.Load(@"Regression\CZD\Source", @"CZD_*.sgf", true);

            Dictionary <SafetyStatus, int> lSafetyUsage = new Dictionary <SafetyStatus, int>();

            foreach (GameRecord lGameRecord in lGameRecords.Games)
            {
                GoBoard lGoBoard = new GoBoard(19);
                GameRecordBoardAdapter.Apply(lGameRecord, lGoBoard);
                //lGameRecord.Apply(lGoBoard);

                foreach (GoCell lCell in lGoBoard.Cells)
                {
                    SafetyStatus lSafetyStatus = lGoBoard.GetSafetyStatus(lCell.Index);

                    if (lSafetyUsage.ContainsKey(lSafetyStatus))
                    {
                        lSafetyUsage[lSafetyStatus] += 1;
                    }
                    else
                    {
                        lSafetyUsage[lSafetyStatus] = 1;
                    }
                }

                Console.Write(".");
            }
            Console.WriteLine();
            foreach (SafetyStatus lSafetyStatus in lSafetyUsage.Keys)
            {
                Console.Write(lSafetyStatus.ToInteger());
                Console.Write(" | {0}", lSafetyStatus);
                Console.WriteLine(" | " + lSafetyUsage[lSafetyStatus].ToString());
            }

            MemFile lMemFile = new MemFile();

            lMemFile.WriteLine(lGameRecords.ToString());
            lMemFile.SaveFile(@"Regression\CZD\CZD-combined.sgf");

            SafetySolverType lSafetySolverType = SafetySolverType.Muller04;

            for (int i = 0; i < lGameRecords.Games.Count; i++)
            {
                GoBoard lGoBoard = new GoBoard(19);
                GameRecordBoardAdapter.Apply(lGameRecords[i], lGoBoard);
                //lGameRecords[i].Apply(lGoBoard);
                GameRecordBoardAdapter.UpdateTerritory(lGameRecords[i], lGoBoard);
                //lGameRecords[i].UpdateTerritory(lGoBoard);
                //Console.WriteLine(lGoBoard.ToString());
                Console.Write(i.ToString());
                Console.Write(" : ");
                Console.Write(lGoBoard.CountSafePoints(Color.Both, lSafetySolverType).ToString());
                Console.Write(" ");
                Console.Write(lGoBoard.CountSafePoints(Color.Black, lSafetySolverType).ToString());
                Console.Write(" ");
                Console.WriteLine(lGoBoard.CountSafePoints(Color.White, lSafetySolverType).ToString());
            }

            for (int i = 0; i < lGameRecords.Games.Count; i++)
            {
                MemFile lMemFile2 = new MemFile();
                lMemFile2.WriteLine(lGameRecords[i].ToString());
                lMemFile2.SaveFile(@"Regression\CZD\" + lGameRecords[i].GameName.Insert(3, "-") + ".sgf");
            }

            return(0);
        }
Example #14
0
 protected void Add(string typeName, SafetySolverType solverType)
 {
     Dictionary.Add(typeName, solverType);
 }
Example #15
0
 public SolverExtended(SafetySolverType safetySolverType)
 {
     SafetySolverType = safetySolverType;
     SafetySolver = SafetySolverFactory.CreateFactory(safetySolverType);
 }
Example #16
0
 public GoBoard(int boardSize)
 {
     Coord = CoordinateSystem.GetCoordinateSystem(boardSize);
     SafetySolver = SafetySolverType.Muller04;
     Clear();
 }
Example #17
0
 public SolverExtended(SafetySolverType safetySolverType)
 {
     SafetySolverType = safetySolverType;
     SafetySolver     = SafetySolverFactory.CreateFactory(safetySolverType);
 }
Example #18
0
 public static ISafetySolverInterface CreateFactory(SafetySolverType safetySolverType)
 {
     switch (safetySolverType)
     {
         case SafetySolverType.Benson: return new SolverBenson();
         case SafetySolverType.Muller97: return new SolverMuller(1997);
         case SafetySolverType.Muller04: return new SolverMuller(2004);
         case SafetySolverType.Muller97Plus: return new SolverExtended(SafetySolverType.Muller97);
         case SafetySolverType.Muller04Plus: return new SolverExtended(SafetySolverType.Muller04);
         case SafetySolverType.BensonPlus: return new SolverExtended(SafetySolverType.Benson);
         default: return new SolverNull();
     }
 }