rnd 0.2.0
rnd: ^0.2.0 copied to clipboard
Extension methods & helpers for Random, and a globally accessible instance. Ex. rnd(10), rnd.getItem(list), rnd.getBit(0.8).
rnd package #
Makes working with random values in Dart / Flutter easier:
- It provides an easy to access, global instance of Random.
- It adds helpful extension methods to Random.
Global instance #
To make it easy to set up and propagate a Random instance throughout your app, the rnd package exposes a
global instance via the rnd property. This makes generating a random value as simple as:
import 'package:rnd/rnd.dart';
rnd(10); // random double between 0-10
rnd.getBool(0.8); // 80% chance to get true
You can also get and set the seed for the global instance via rndSeed.
Extension methods on Random #
Adds the following methods to all instances of Random. Read the docs for more info.
getInt(min, max, {curve})// see "Curves" belowgetDouble(min, max, {curve})getBool(chance)getBit(chance)// 0 or 1getSign(chance)// -1 or 1getDeg()// 0-360getRad()// 0-2pigetColor({...})// see docs for paramsgetItem(list, {remove, curve})shuffle(list, {copy})// randomize list
It also defines a call method, which lets you get a random double value by calling a Random instance directly:
Random myRandom = new Random();
print(myRandom()); // double between 0-1
print(myRandom(10)); // 0-10
print(myRandom(5,10)); // 5-10
This pairs well with the global instance for quickly getting random values:
new Point(rnd(maxX), rnd(maxY))
Curves #
The getDouble, getInt, and getItem methods support a curve param which transforms the value distribution. For example:
rnd.getInt(0, 100, curve: Curves.easeIn)
This would favor values nearer to 0, whereas easeOut would favor values nearer to 100. The included example app visualizes the effect of different curves.
Hue #
The included Hue class provides named hue values for use with getColor. For example:
rnd.getColor(hue: Hue.red); // red, green, blue, yellow, cyan, magenta