       if (illuminationCount(row, col) > 0) {
         setColor(row, col, getYellow());  // Light you've turned on indirectly.
       } else {
+        anyEmpty = true;
         setColor(row, col, getOff());  // Light that's still off.
       }
     }
   }
+  bool victory = !anyInvalid && !anyEmpty;
+  return victory;
 }
 
 // Color definitions

      continue;
    } else if (isSwitchOn(row, col)) {
      if (illuminationCount(row, col) > 1) {
        setColor(row, col, getRed());  // Conflicting lights.
        // TODO(dbieber): Send message
        // Serial.println(10);  // Send "Ahhhhhh!" audio signal.

  }
}

void loop() {
  delay(20);
  bool victory = update();
  leds.write(colors, STRIP_LENGTH);
  if (victory) {
    delay(500);
    setAllBlue();
  }
}
