This guide is going to help people to more easily make games or heavy computational maps.
Number Theory: Base N
This is a number theory concept. In base n, there are n different digits, from 0 to n-1. Our base 10 system has 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Each successive digit represents a value of n^(position from right-1). In 465, the 4 represents the 100s place because it is in the 3rd spot and 10^(3-1) is 100. What use does this have for us then? A keyboard can use this concept to make infinite backspaces. It has n different numbers, so the number property will have to be in base n.
However, the interface only uses base 10. How can we encode base n? Well, we multiply each successive digit by an additional power of n to encode it. When we decode it, we factor out the largest digit and go on from there. This should have lots of applications in gimkit, since it is also very useful in the real world!
CS: Loops
In CS, there are 2 types of loops. For loops and while loops. For loops run for a specified amount of repetitions, and while loops run until a condition turns to false. I will focus on while loops because for loops can be built from a while loop. The basic idea of a loop is to have a condition and a block of code to repeat. The variable in the condition will be changed with each repetition. The system moves on to the next part of code when the condition is false. Now how do we repeat things a certain number of times? We set up a dummy variable (i=0). We then make the condition: “Is i less than the amount of times I want it to repeat?”. If it is yes, it runs the code and increments i by 1. If it is yes, then it just moves on.
Now, based on this, in Gimkit, the variable will be a property or item amount, and we will use a trigger or checker based on the variable type. We have to edit the property with each repetition. Here is an example of a for loop:
This is overly complicated for granting multiple items and can very much simplified, but the purpose is to make simple for loops. While loops are done in a similar fashion, but the block code is different, and using true/false(boolean) values might be superior in certain cases.