We classify difficulty levels as Easy, Medium and Hard. I had used Observer Pattern to solve easy ones . I hope your solution would solve all levels.