PkmnLib.NET/PkmnLib.Static/Utils/Random.cs

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;
}