43 lines
939 B
C#
43 lines
939 B
C#
namespace PkmnLib.Static.Utils;
|
|
|
|
public interface IRandom
|
|
{
|
|
public int GetInt(int min, int max);
|
|
public int GetInt(int max);
|
|
public int GetInt();
|
|
public float GetFloat();
|
|
public float GetFloat(float min, float max);
|
|
public bool GetBool();
|
|
}
|
|
|
|
public class RandomImpl : IRandom
|
|
{
|
|
private Random _random;
|
|
|
|
public RandomImpl(Random random)
|
|
{
|
|
_random = random;
|
|
}
|
|
|
|
public RandomImpl(int seed)
|
|
{
|
|
_random = new Random(seed);
|
|
}
|
|
|
|
public RandomImpl()
|
|
{
|
|
_random = new Random();
|
|
}
|
|
|
|
public int GetInt(int min, int max) => _random.Next(min, max);
|
|
|
|
public int GetInt(int max) => _random.Next(max);
|
|
|
|
public int GetInt() => _random.Next();
|
|
|
|
public float GetFloat() => (float)_random.NextDouble();
|
|
|
|
public float GetFloat(float min, float max) => (float)(_random.NextDouble() * (max - min) + min);
|
|
|
|
public bool GetBool() => _random.Next(2) == 1;
|
|
} |