Example #1
0
        internal string BoardStateToString(Point start, Point end)
        {
            StringBuilder sBuilder = new StringBuilder();

            for (int y = 0; y < CellsHigh; y++)
            {
                for (int x = 0; x < CellsWide; x++)
                {
                    Point     pos         = new Point(x, y);
                    ScorePath scorePath   = GetCellScorePath(pos);
                    MoveDirs  allowedDirs = GetCellMoves(pos);
                    if (pos == start)
                    {
                        sBuilder.Append('S');
                    }
                    else if (pos == end)
                    {
                        sBuilder.Append('E');
                    }
                    else if (allowedDirs.HasFlag(MoveDirs.FriendWire))
                    {
                        sBuilder.Append('%');
                    }
                    else if (scorePath.DirFrom == MoveDirs.Up)
                    {
                        sBuilder.Append("↑");
                    }
                    else if (scorePath.DirFrom == MoveDirs.Down)
                    {
                        sBuilder.Append("↓");
                    }
                    else if (scorePath.DirFrom == MoveDirs.Left)
                    {
                        sBuilder.Append("←");
                    }
                    else if (scorePath.DirFrom == MoveDirs.Right)
                    {
                        sBuilder.Append("→");
                    }
                    else if (scorePath.DirFrom == MoveDirs.None)
                    {
                        sBuilder.Append(' ');
                    }
                }
                sBuilder.AppendLine();
            }

            return(sBuilder.ToString());
        }
Example #2
0
 public static bool IsHorizontal(this MoveDirs dir)
 {
     return(dir.HasFlag(MoveDirs.Left) || dir.HasFlag(MoveDirs.Right));
 }
Example #3
0
 public static bool IsVertical(this MoveDirs dir)
 {
     return(dir.HasFlag(MoveDirs.Up) || dir.HasFlag(MoveDirs.Down));
 }