Ejemplo n.º 1
0
        static LinkedList <MyBitArray> GetAllCandidates(int[] numbers, int length)
        {
            LinkedList <MyBitArray> result = new LinkedList <MyBitArray>();

            if (numbers.Length == 0)
            {
                result.AddLast(new MyBitArray(length));
            }
            else
            {
                foreach (int[] spaces in EnumNumberSpaces(numbers, length))
                {
                    MyBitArray can = new MyBitArray(length);
                    int        pos = 0;
                    for (int i = 0; i < spaces.Length; ++i)
                    {
                        pos += spaces[i];
                        for (int j = 0; j < numbers[i]; ++j)
                        {
                            can.Set(pos++);
                        }
                    }
                    result.AddLast(can);
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
 public void AndNot(MyBitArray other)
 {
     for (int i = 0; i < bits.Length; ++i)
     {
         bits[i] &= ~other.bits[i];
     }
 }
Ejemplo n.º 3
0
        public object Clone()
        {
            MyBitArray n = new MyBitArray(bits.Length * 64);

            for (int i = 0; i < bits.Length; ++i)
            {
                n.bits[i] = bits[i];
            }
            return(n);
        }
Ejemplo n.º 4
0
 public bool NotAndIsZero(MyBitArray other)
 {
     for (int i = 0; i < bits.Length; ++i)
     {
         if (((~bits[i]) & other.bits[i]) != 0)
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 5
0
        void GetRowSlice(int rowIndex, out MyBitArray on, out MyBitArray off)
        {
            int size = pixelStates.GetLength(0);

            on  = new MyBitArray(size);
            off = new MyBitArray(size);
            for (int i = 0; i < size; ++i)
            {
                switch (pixelStates[i, rowIndex])
                {
                case PixelStateEnum.ON:
                    on.Set(i);
                    break;

                case PixelStateEnum.OFF:
                    off.Set(i);
                    break;
                }
            }
        }