所以我试图制作战舰游戏,在开始时产生随机的船只位置。我使用整数数组来跟踪船只的位置。我希望生成一个随机的数字序列,并给出多少数字的参数。说我想要4个数字,这些数字都是1,2,3,4,但我也可以随机获得55,56,57,58?有任何想法吗? 4个数字代表航空母舰,3个驱逐舰等等。
答案 0 :(得分:1)
正如其他人所指出的那样,这对于可以将船只放置在不同方向的战列舰实际上没有多大帮助,但是为了回答你问的问题,只需生成一个随机数然后增加。
private static Random _random = new Random();
private static IEnumerable<int> GetSequence(int size, int max)
{
var start = _random.Next(max - (size - 1));
for (var i = 0; i < size; i++)
{
yield return start + i;
}
}
编辑:正如@EricLippert所提到的,这可以缩短为:
private static Random _random = new Random();
private static IEnumerable<int> GetSequence(int size, int max)
{
return Enumerable.Range(_random.Next(max-(size-1)), size);
}
答案 1 :(得分:0)
private static Random rand = new Random();
static void Main(string[] args)
{
int[] numbers = RandomNumbers(4, 1, 100);
Console.WriteLine(string.Join(",",numbers));
Console.Read();
}
public static int[] RandomNumbers(int numberOfResults, int minValue, int maxValue)
{
// declare array for return values
int[] result = new int[numberOfResults];
// get next value from random passing in the min and max ranges
int start = rand.Next(minValue, maxValue);
// generate the numbers up to the max number of results required
for (int i = 0; i < numberOfResults; i++)
{
result[i] = start++;
}
return result;
}