The user is timed on each question that's made up of basic arithmetic (+, -, *, /). The user chooses the number of questions, each made up of two random operands and a random operation.
- Each operand has equal possibility to be any number in the range of a difficulty-defined maximum (-/+)
- Operand 2 is never 0
- Operation is randomlly chosen from an array of chars
Difficulty algorithm: difficulty is checked every fifth question and will increase the operand size by some amount if the users' average total perfomance is less than 5 seconds a question. Maxes out at 100.
![Screenshot 2023-07-17 153156](https://private-user-images.githubusercontent.com/5957735/254084986-58e77e45-1ac7-43b9-a9c1-b61835f70099.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MzE5NzEsIm5iZiI6MTcyMTUzMTY3MSwicGF0aCI6Ii81OTU3NzM1LzI1NDA4NDk4Ni01OGU3N2U0NS0xYWM3LTQzYjktYTljMS1iNjE4MzVmNzAwOTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjFUMDMxNDMxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWJlNzRiYTA1MzRmYjVhZTEwNGU3MDJmMDEwN2E5ZGNiZDk3Y2U5MDdlNjM2N2M4ZTFlNDAwMDQyMWZlODE3MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.M77p-P2zx0AbtRwajzLNTPP6mDIVX9PrKl4c_fsgjH0)
Program.cs - The main driver of the program, look here for formatting and driving code
Problem.cs - Problem class, creates everything about a generated question, also controls difficulty.
The motivation behind this program is to aid math education and will continue to grow in that direction. A big roadblock in a lot of complex math classes is the added time necessary to perform arithmetic on paper or with a calculator. Learning mental math tricks and practicing is a way to get past the block which will allow for a more enjoyable and engaged learning experience.