Esempio n. 1
0
        public void SetNumber(int x, int y, int num)
        {
            int      row    = (int)Math.Floor((double)y / 3);
            int      col    = (int)Math.Floor((double)x / 3);
            BoardBox bb     = BoardBox[col, row];
            int      minorX = x - col * 3;
            int      minorY = y - row * 3;

            bb.SetNumber(minorX, minorY, num);
        }
Esempio n. 2
0
 public void ClearBoard()
 {
     for (int x = 0; x < 3; x += 1)
     {
         for (int y = 0; y < 3; y += 1)
         {
             BoardBox[x, y] = new BoardBox();
         }
     }
 }
Esempio n. 3
0
        public int GetNumber(int x, int y)
        {
            int      row    = (int)Math.Floor((double)y / 3);
            int      col    = (int)Math.Floor((double)x / 3);
            BoardBox bb     = BoardBox[col, row];
            int      minorX = x - col * 3;
            int      minorY = y - row * 3;

            return(bb.GetNumber(minorX, minorY));
        }
Esempio n. 4
0
        public bool CanPlaceAtSubGrid(int subX, int subY, int relX, int relY, int num)
        {
            BoardBox subGrid  = BoardBox[subX, subY];
            int      checkNum = subGrid.GetNumber(relX, relY);

            if (checkNum == 0)
            {
                bool numExists = false;
                for (int x = 0; x < 3; x += 1)
                {
                    for (int y = 0; y < 3; y += 1)
                    {
                        if (x == relX && y == relY)
                        {
                            continue;
                        }

                        checkNum = subGrid.GetNumber(x, y);
                        if (checkNum == num)
                        {
                            numExists = true;
                            break;
                        }
                    }

                    if (numExists)
                    {
                        break;
                    }
                }

                if (!numExists)
                {
                    return(true);
                }
            }

            return(false);
        }