Implement an automatic solver that follows logic. Then also add the option for the user to request a hint.