   bool anyInvalid = false;
   bool anyEmpty = false;
   bool anyWallConstrainsViolated = false;
+  int switchesOn = 0;
   for (int index = 0; index < GRIDSIZE * GRIDSIZE; index++) {
     int row = getRow(index);
     int col = getCol(index);
     if (isWall(row, col)) {
       continue;
     } else if (isSwitchOn(row, col)) {
+      switchesOn++;
       if (illuminationCount(row, col) > 1) {
         anyInvalid = true;
         setColor(row, col, RED);  // Conflicting lights.

}

//void loop() {
//  if (DEBUG_FLAG) {
//    if (USE_SERIAL) {
//      Serial.println("DEBUG");
//    }
//    for (int index = 0; index < GRIDSIZE * GRIDSIZE; index++) {
//      int value = getSwitchValue(getRow(index), getCol(index));
//      if (index % GRIDSIZE == 0) {
//        if (USE_SERIAL) {
//          Serial.println("");
//        }
//      }
//      if (value == SWITCH_WALL) {    
//        if (USE_SERIAL) {
//          Serial.print("X");
//        }
//      } else {
//        if (USE_SERIAL) {
//          Serial.print(value);
//        }
//      }
//      
//      if (USE_SERIAL) {
//        Serial.print(' ');
//      }
//    }
//
//    if (USE_SERIAL) {
//      Serial.print('\n');
//      Serial.print('\n');
//      Serial.flush();
//    }
////
//    if (isSwitchOn(3, 3)) {
//      //Serial.println("YES");
//      setColor(3, 3, RED);
//    } else {
//      //Serial.println("NO");
//      setColor(3, 3, BLUE);
//    }
//    leds.write(colors, STRIP_LENGTH);
//    delay(50);
//  } else {
//    bool victory = update();
//    // leds.write(colors, STRIP_LENGTH);
//    if (victory) {
//      delay(500);
//      setAllBlue();
//    }
//  }
//
//  delay(1000);


#define NO 98  // Represents no pin
const uint16_t SWITCH_PINS[] = {
  13, 26,  9, 10, 48, NO, 32,
  NO, 17, 16, NO, 47, 50, 34,
   7,  6, 15,  8, 46, 51, 36,
  28, NO, 30, 22, 45, NO, 35,
  25, 37, 39, 41, 42, 44, 33,
  24, 27, 29, NO, 43, 52, NO,
  25, NO, 31, 38, 40, 49, 53,
};

const uint16_t LED_INDEXES[] = {
