我正在制作一个西蒙说的游戏,但不像普通的西蒙说的游戏(播放随机序列),我希望使序列非随机并基于instructions.text
例如:instructions.text
可以包含“红色,黄色,红色,绿色”。
游戏会将文本解释为序列的内容。
现在,我的代码会让序列变得随机......请你能否按我正确的方向推动我如何使这个非随机。提前谢谢。
public Color [] newSequence (int length)
{
Color [] array = new Color[length];
Random rand = new Random(DateTime.Now.Millisecond);// don't inline w/ colors[] - wont be random
for (int i=0; i<length; i++) {
array[i] = colors[rand.Next(0,4)];
}
this.sequence=array;
return array;
}
答案 0 :(得分:3)
加载游戏后,您可以将instructions.txt
文件的内容读入Array
。然后,此Array
将用作序列缓冲区。
这是一个简短(不完整)的例子。您可以在每一行提供integer
值,或者人类可读的颜色定义(红色,绿色,蓝色),然后将其解析为integer
对应物。
public Color [] newSequence(int length) {
string line;
int counter = 0;
Color [] array = new Color[length];
System.IO.StreamReader file = new System.IO.StreamReader("instructions.txt");
while ((line = file.ReadLine()) != null) {
array[i] = /* instantiate your new color here, based upon the value on each line */
}
file.close();
this.sequence = array;
return array;
}
文件输入代码段的参考:here
或者,如果您希望不再需要instructions.txt
文件,请使用静态种子初始化随机数生成器。
Random rand = new Random(293102);
这样,渐进值将始终相同。