Example #1
0
 public Board()
 {
     EachGrid((x, y) =>
     {
         m_squares[x, y] = new Square(x, y);
         m_squares[x, y].ValueSetEvent += HandleSquareValueSet;
     });
     this.Complete = false;
 }
Example #2
0
 public void FireValueChangedEvent()
 {
     Square s = new Square(1, 1);
     Square eventSquare = null;
     s.ValueSetEvent += delegate(object sender, Square square)
     {
         eventSquare = square;
     };
     s.Value = 9;
     Assert.IsNotNull(eventSquare);
     Assert.AreEqual(s, eventSquare);
 }
Example #3
0
        public void TestSetValueAfterRemovingPossiblities()
        {
            Square s = new Square(1, 1);
            Square eventSquare = null;
            s.ValueSetEvent += delegate(object sender, Square square)
            {
                eventSquare = square;
            };

            for (int x = 1; x < 9; x++) s.RemovePossiblity(x);
            Assert.IsNotNull(eventSquare);
            Assert.AreEqual(eventSquare.Value, 9);
        }
Example #4
0
        void HandleSquareValueSet(object sender, Square square)
        {
            bool complete = true;
            EachSquare(s =>
                {
                    if (s.Value == null) complete = false;
                });
            this.Complete = complete;

            Action<Square> action = new Action<Square>(s => { if (s != square) s.RemovePossiblity(square.Value.Value); });
            EachRow(square.Row, action);
            EachColumn(square.Column, action);
            EachGroup(square.Row, square.Column, action);
        }
Example #5
0
 public void TestSquareToString()
 {
     Square s = new Square(1, 1);
     Assert.AreEqual("1,2,3,4,5,6,7,8,9", s.ToString());
     s.RemovePossiblity(5);
     Assert.AreEqual("1,2,3,4,6,7,8,9", s.ToString());
     s.Value = 4;
     Assert.AreEqual("4", s.ToString());
 }