Write a module for generating math problems. The primary function for generating a math problem should accept three arguments:
- depth: An integer between 1 and n (maximum not yet determined) which determines the difficulty of the problem. The higher the number, the more difficult the problem. Difficulty should be increased with longer numbers.
- type: The type of problem to generate. This will be based on which of three tool is being used, although there may be more tools in a later version. Consider writing an Enum class for the problem types. The three problem types right now are:
- Two operands. (Pickaxe)
- Multiple operands, same operator. (Drill)
- Multiple operands, different operators. (TNT)
- power: The "power level", an integer between 1 and 8. See Math: Power Levels for details.
The problem needs to be generated in an object or collection which contains all the numbers and operators in order, the final answer, and (probably) the intermediary answers for the individual parts.
Also bear in mind how much can be displayed on the screen comfortably. Do not scale down text to fit more in! One of our accessibility support rules is large font size, such that @jcmcdonald can read it from two feet without glasses. Cascadia Code will be our math display font, and 60 pt is a comfortable size (48 pt is a strain, but possible, so is allowed for non-essential text).