我想设计一个猜数字的游戏,它是四个数字,所以我想能随机生成这四个数字。
而且,这四个数字不能重复,从0-9中随机生成的四个不重复数字。
新建一个控制台应用,代码如下:
using System;
using System.Collections; //要加这个Collections才能用ArrayList
namespace ConsoleApp7
{
class Program
{
static void Main(string[] args)
{
//声明一个动态数组a1
ArrayList a1 = new ArrayList();
//用while循环,在数组里面元素数量达到5个之前,一直循环添加元素到数组
while (a1.Count < 5)
{
//声明一个随机数r
Random r = new Random();
int c;
//让随机数在0至9之间生成一个整数
c = r.Next(0, 9);
//if判断,a1数组中是否包含了c,如果不包含,就将c加入a1数组中
if (!a1.Contains(c))
{
a1.Add(c);
//这就话可以隔开数字
Console.WriteLine("----------美丽分割线----------");
}
//输出a1数组中的所有元素,用于检测是否添加成功
foreach (int a2 in a1)
{
Console.WriteLine(a2);
}
}
Console.ReadLine();
}
}
}
上面这个代码,会把每次while循环都打印出来,可以看到很多次随机的数字都是重复的,所以一直添加不进去,就一直打印重复的数组。
还有一个代码,是只打印最后生成的五个数字的数组,如下:
using System;
using System.Collections; //要加这个Collections才能用ArrayList
namespace ConsoleApp7
{
class Program
{
static void Main(string[] args)
{
//声明一个动态数组a1
ArrayList a1 = new ArrayList();
//用while循环,在数组里面元素数量达到5个之前,一直循环添加元素到数组
while (a1.Count < 5)
{
//声明一个随机数r
Random r = new Random();
int c;
//让随机数在0至9之间生成一个整数
c = r.Next(0, 9);
//if判断,a1数组中是否包含了c,如果不包含,就将c加入a1数组中
if (!a1.Contains(c))
{
a1.Add(c);
}
}
//输出a1数组中的所有元素,用于检测是否添加成功
foreach (int a2 in a1)
{
Console.WriteLine(a2);
}
Console.ReadLine();
}
}
}