mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-25 20:34:32 -08:00
17 lines
671 B
C#
17 lines
671 B
C#
using Games.Common.Randomness;
|
|
using SuperStarTrek.Space;
|
|
|
|
namespace SuperStarTrek;
|
|
|
|
internal static class IRandomExtensions
|
|
{
|
|
internal static Coordinates NextCoordinate(this IRandom random) =>
|
|
new Coordinates(random.Next1To8Inclusive() - 1, random.Next1To8Inclusive() - 1);
|
|
|
|
// Duplicates the algorithm used in the original code to get an integer value from 1 to 8, inclusive:
|
|
// 475 DEF FNR(R)=INT(RND(R)*7.98+1.01)
|
|
// Returns a value from 1 to 8, inclusive.
|
|
// Note there's a slight bias away from the extreme values, 1 and 8.
|
|
internal static int Next1To8Inclusive(this IRandom random) => (int)(random.NextFloat() * 7.98 + 1.01);
|
|
}
|