Its an interesting puzzle, I'd recommend adding a feature to mark cells you know are dark. It also may need another constraint as solutions are non-unique