I made another version of the arithmetic practice project. This one lets the calculation code work with a selected operation and difficulty level instead of treating every question the same way.
The Calculate object remembers the operation and level. It generates an equation as a string, keeps the two operands, and has a separate method to test the answer. The easier range uses small positive numbers; the harder one can include negative values. Addition, subtraction, and multiplication all use the same object structure.
Separating the question generator from the screen is a useful little improvement. The part that checks whether an answer is right does not need to know how the question was displayed. It is still a small program, but I like seeing how changing the structure can make adding another option less messy.