Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使该生成器创建完全随机的面?_C#_Random - Fatal编程技术网

C# 如何使该生成器创建完全随机的面?

C# 如何使该生成器创建完全随机的面?,c#,random,C#,Random,我构建了这个小小的ASCII面生成器(有点),我希望它能根据可用的零件随机组合一个面,但目前它似乎只根据它最初绘制的整数来选择零件。因此,如果它最初调用2,它只是调用了所有不同部分的第二个选项 前 { bool faceLoop=true; while(faceLoop==true) { 内特毛; Random randHair=新的Random(); setHair=randHair.Next(1,4); if(setHair==1) { Console.WriteLine(“{}{}{}}”

我构建了这个小小的ASCII面生成器(有点),我希望它能根据可用的零件随机组合一个面,但目前它似乎只根据它最初绘制的整数来选择零件。因此,如果它最初调用2,它只是调用了所有不同部分的第二个选项

{
bool faceLoop=true;
while(faceLoop==true)
{
内特毛;
Random randHair=新的Random();
setHair=randHair.Next(1,4);
if(setHair==1)
{
Console.WriteLine(“{}{}{}}”);
Console.WriteLine(“{}{}{}}”);
Console.WriteLine(“{}{}{}}”);
Console.WriteLine(“{}”);
}
if(setHair==2)
{
WriteLine({{{{{{{{}}}});
WriteLine({{{{{{{{{}}}});
WriteLine({{{{{{{{}}}});
WriteLine({{{{{{{{{}}}});
}
if(setHair==3)
{
WriteLine(“,,,,,,,,,,,,,,,,,,,,,,,,”;
}
Console.WriteLine(“{{}”);
Console.WriteLine(“/|====| \\”;
眼睛;
Random randEyes=新的Random();
setEyes=randeeyes.Next(1,4);
if(setEyes==1)
{
Console.WriteLine(“\\\\\\(\\\\\\\\\\\)(\\\\\\\\\\\\\\\\\\\\\)(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
}
if(setEyes==2)
{
Console.WriteLine(\\\\\;xXx xXx |/);
}
if(setEyes==3)
{
Console.WriteLine(“\\\{0}{0}}}/”;
}
内特毛鼻;
Random randNose=新的Random();
setNose=randNose.Next(1,4);
if(setNose==1)
{
Console.WriteLine(“\\\\\\(,)\\\/”;
}
if(setNose==2)
{
Console.WriteLine(“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
Console.WriteLine(“\\\\\\\\\\\\/”);
}
if(setNose==3)
{
Console.WriteLine(“\\\\>\”/”;
}
小胡子;
Random randStash=新的Random();
setmoustach=randStash.Next(1,4);
if(setmoustach==1)
{
Console.WriteLine(“{}”);
Console.WriteLine(“{///\”);
}
if(setmoustach==2)
{
Console.WriteLine(“{}”);
Console.WriteLine(“{…….}”);
}
if(setmoustach==3)
{
Console.WriteLine(“{}”);
Console.WriteLine(“{}”);
}
内特塞特茅斯;
Random randMouth=新的Random();
setMouth=randMouth.Next(1,4);
if(setMouth==1)
{
Console.WriteLine(“{0}”);
Console.WriteLine(“{X==^==X}”);
}
if(setMouth==2)
{
Console.WriteLine(“{}”);
Console.WriteLine(“{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
}
如果(setMouth==3)
{
Console.WriteLine(“{%}”);
Console.WriteLine(“{%}”);
}
内特塞钦;
Random randChin=新的Random();
setChin=randChin.Next(1,4);
if(setChin==1)
{
Console.WriteLine(“{^^}”);
Console.WriteLine(“%#######################%”;
}
if(setChin==2)
{
Console.WriteLine(“{}”);
Console.WriteLine(“{uuuuuuuuuu124; uuu124; uuu124; uuu124; uuu124; uuu124; uu124; u124; uu124; u124; u124; uu124uu124uuu124uuu124uu124uu124uu124uuu124uu124uu124uuu;
}
if(setChin==3)
{
Console.WriteLine(“{}”);
Console.WriteLine(“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
}
Console.ReadLine();
}
}

我刚刚运行了下面的代码,这是上面所有的代码,但它没有打印脸部的那部分,而是打印生成的随机数。从我看到的情况来看,数字是随机生成的

 bool faceLoop = true;
            while (faceLoop == true)
            {
                int setHair;

                Random randHair = new Random();
                setHair = randHair.Next(1, 4);
                Console.WriteLine("Set hair: " + setHair);

                int setEyes;

                Random randEyes = new Random();
                setEyes = randEyes.Next(1, 4);
                Console.WriteLine("Set eyes: " + setEyes);
                int setNose;

                Random randNose = new Random();
                setNose = randNose.Next(1, 4);
                Console.WriteLine("Set nose: " + setNose);

                int setMoustache;

                Random randStash = new Random();
                setMoustache = randStash.Next(1, 4);
                Console.WriteLine("Set moustache: " + setMoustache);
                int setMouth;

                Random randMouth = new Random();
                setMouth = randMouth.Next(1, 4);
                Console.WriteLine("Set mouth: " + setMouth);
                int setChin;

                Random randChin = new Random();
                setChin = randChin.Next(1, 4);
                Console.WriteLine("Set chin: " + setChin);

                Console.ReadLine();
此代码的输出为:

发型:1

定睛:2

机头:3

留胡子:3

固定嘴:1


Set chin:3

代码正在为每个部分创建一个新的
Random
。这很可能导致所有随机数都是相同的数字。使用一(1)
Random
用于所有不同的部分。我不想不同意,但是,使用您发布的代码,我无法复制您显示的输出。在几乎所有情况下,在我的测试中,每个部分的数字都是相同的。正如所评论的,这是因为
Random
是“新创建的”对于每个部分,
Random
使用一个
DateTime
作为初始种子,因此,当新创建的随机数快速连续创建(如此处所示)时,这些数字很可能是相同的。此外,创建“分离”也没有意义
Random
对于每个部分,一(1)个变量将适用于所有部分。这非常有趣
 bool faceLoop = true;
            while (faceLoop == true)
            {
                int setHair;

                Random randHair = new Random();
                setHair = randHair.Next(1, 4);
                Console.WriteLine("Set hair: " + setHair);

                int setEyes;

                Random randEyes = new Random();
                setEyes = randEyes.Next(1, 4);
                Console.WriteLine("Set eyes: " + setEyes);
                int setNose;

                Random randNose = new Random();
                setNose = randNose.Next(1, 4);
                Console.WriteLine("Set nose: " + setNose);

                int setMoustache;

                Random randStash = new Random();
                setMoustache = randStash.Next(1, 4);
                Console.WriteLine("Set moustache: " + setMoustache);
                int setMouth;

                Random randMouth = new Random();
                setMouth = randMouth.Next(1, 4);
                Console.WriteLine("Set mouth: " + setMouth);
                int setChin;

                Random randChin = new Random();
                setChin = randChin.Next(1, 4);
                Console.WriteLine("Set chin: " + setChin);

                Console.ReadLine();