2014-09-24 2 views
0

Я пытаюсь создать реакционную игру, состоящую из Windows Form, случайной кнопки появления и TestBox, чтобы считать хиты.Случайная кнопка Расположение Reeaction Game

Это мой код. Когда я отлаживаю его, переменная «i» получает значение 9, почему ?!

private void button1_Click(object sender, EventArgs e) 
{ 
    int i; 
    Random x = new Random(); 
    for (i = 0; i < 10; i++) 
    { 
     Point pt = new Point(
      int.Parse(x.Next(400).ToString()), 
      int.Parse(x.Next(250).ToString()) 
      ); 
     button1.Location = pt; 
     textBox1.Text = "Hits: " + i; 


    } 

} 

Я новичок в C#, и я много гулял, но, думаю, я не могу найти свою ошибку.

+0

Вы хотите, чтобы обработчик щелчка запускал метод, который перемещает кнопку один раз. (И сохраните общее количество перемещений, хранящихся в закрытом поле или аналогичном. – ne1410s

ответ

0

Это из-за этой линии.

textBox1.Text = "Hits: " + i; 

Вы ставите выше предложения в петле так, когда цикл останавливается «я» переменная имеет значение 9, который будет отображаться в текстовом поле.

После нажатия кнопки он перемещает позицию кнопки 10 раз, а затем помещает значение «i» в текстовое поле.

Чтобы сделать это, внесите следующую корректировку в код.

int i=0; // Define i at class level 
private void button1_Click(object sender, EventArgs e) 
{  
    Random x = new Random(); 

     i++; 
     Point pt = new Point(
      int.Parse(x.Next(400).ToString()), 
      int.Parse(x.Next(250).ToString()) 
      ); 
     button1.Location = pt; 
     textBox1.Text = "Hits: " + i; 
} 
+0

Спасибо за ваш ответ. Итак, как я могу это исправить? – Michael

+0

Вау. Спасибо, много Нирава Камани! Ты мне очень помог! :-) – Michael

Смежные вопросы