Ejemplo n.º 1
0
        /// <summary>
        /// Adds stones to the board in a rectangular area.
        /// </summary>
        /// <param name="x1">The left coordinate of the rectangle.</param>
        /// <param name="y1">The top coordinate of the rectangle.</param>
        /// <param name="x2">The right coordinate of the rectangle.</param>
        /// <param name="y2">The bottom coordinate of the rectangle.</param>
        /// <param name="c">The color of the stone to add (or empty to clear).</param>
        public void SetupMove(int x1, int y1, int x2, int y2, Content c)
        {
            var p = _sgfProperties.SingleOrDefault(x => x.Name == ColorToSGFProp[c]);

            if (p == null)
            {
                p = new SGFProperty()
                {
                    Name = ColorToSGFProp[c]
                };
                _sgfProperties.Add(p);
            }
            var composed = $"{Point.ConvertToSGF(x1, y1)}:{Point.ConvertToSGF(x2, y2)}";
            var v        = new SGFPropValue(composed);

            p.Values.Add(v);
            for (var i = x1; i <= x2; i++)
            {
                for (var j = y1; j <= y2; j++)
                {
                    Board[i, j] = c;
                }
            }
            _setupMoves = null;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds a stone to the board as a setup move.
        /// </summary>
        /// <param name="x">The X coordinate of the setup move.</param>
        /// <param name="y">The Y coordinate of the setup move.</param>
        /// <param name="c">The color of the stone to add (or empty to clear).</param>
        public void SetupMove(int x, int y, Content c)
        {
            var p = _sgfProperties.SingleOrDefault(z => z.Name == ColorToSGFProp[c]);

            if (p == null)
            {
                p = new SGFProperty()
                {
                    Name = ColorToSGFProp[c]
                };
                _sgfProperties.Add(p);
            }
            var v = new SGFPropValue(Point.ConvertToSGF(x, y));

            p.Values.Add(v);
            Board[x, y] = c;
            _setupMoves = null;
        }