魅惑的谜团
我利用timer1每隔1秒生成一个随机数int T = rand.Next(1, 3),并保存到数组arr里边,共生成6个数(用timer2来控制:timer2的Internal=6000),并在textBox1中显示出来结果。
然后比较生成的这6个随机数:第一个和第三个比,第二个和第四个比,第三个和第五个比,第四个和第六个比;如果相同,则生成数字1并保存到数组C里边,如果不同,则生成数字2并保存到数组C里边。这样数组C就有四个元素。并在textBox2中显示出来结果。
问题出来了:不管arr的输出结果如何,数组C的结果总是2 2 2 2。举个例子,假如arr的结果是1 2 2 1 2 1,那么数组C应该是2 2 11,但textBox2显示出来的结果却是2 2 2 2。
请教各位大侠!帮忙找出问题所在!code:
namespace yu_men
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ArrayList arr = new ArrayList();
ArrayList C = new ArrayList();
private void timer1_Tick(object sender, EventArgs e)
{
timer2.Tick += new EventHandler(timer2_Tick);
timer2.Interval = 6 * 1000;
timer2.Enabled = true;
Random rand = new Random();
int T = rand.Next(1, 3);
textBox0.Text = Convert.ToString(T);
arr.Add(T);
}
private void timer2_Tick(object sender, EventArgs e)
{
timer1.Dispose();
timer2.Dispose();
textBox0.Clear();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
foreach (int x in arr)
{
textBox1.Text = textBox1.Text + x + "\r\n";
}
for (int i = 0; i <= 3; i++)
{
if (arr[i + 2] == arr[i])
{
C.Add(1);
}
if (arr[i + 2] != arr[i])
{
C.Add(2);
}
}
foreach (int y in C)
{
textBox2.Text = textBox2.Text + y + "\r\n";
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}