diff options
| author | Yusuf Ebrahim <45940010+yusufmte@users.noreply.github.com> | 2024-01-23 03:45:52 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-23 09:45:52 +0100 |
| commit | a40168a9d7f13891c541055b167a315eb752cf1d (patch) | |
| tree | 2bddfaa9cd7cad1b2cef89f22a2a1228d94acd67 /src/components/motion/MotionController.h | |
| parent | a481af06cff915ca37deb5b967433480612186aa (diff) | |
New dice-rolling app: InfiniDice! (#1326)
Add new App `Dice.h` to randomly roll the dice(s).
The number of dice can range from 1-9 (default 1), and the sides can
range from d2-d99 (default d2).
To have a haptic feedback we make Dice vibrate on roll.
Regarding the use of C++ `<random>` library:
There are known problems with `rand()` and `srand()` (see https://en.cppreference.com/w/cpp/numeric/random/rand)
and the `<random>` library is preferred for this reason. The function used from
`<random>` also avoids a very rare bias that would occur using `rand()` and modulo,
when `RAND_MAX` is not a multiple of `d` and the initially generated number falls in
the last "short" segment. This commit also updates the seed to derive entropy
(via `seed_seq`) from a mix of the system tick count and the x,y,z components of the
PineTime motion controller -- taking inspiration from and with credit to @w4tsn
(https://github.com/InfiniTimeOrg/InfiniTime/pull/1199)
Thanks for suggestions:
* in Dice, when rolling 1d2, also show "HEADS" or "TAILS" -- suggestion by @medeyko
* ui adjustments and result realignment -- suggestion by @Boteium
---------
Co-authored-by: NeroBurner <pyro4hell@gmail.com>
Co-authored-by: Riku Isokoski <riksu9000@gmail.com>
Co-authored-by: Paul Weiß <45500341+Poohl@users.noreply.github.com>
Co-authored-by: FintasticMan <finlay.neon.kid@gmail.com>
Diffstat (limited to 'src/components/motion/MotionController.h')
0 files changed, 0 insertions, 0 deletions
