Переменная p
видна только методу aim()
из-за области действия. Это очень базовая c конструкция программирования.
Чтобы сделать переменную видимой для других методов в том же классе, вам нужно будет перевести ее в область действия уровня класса
private int p;
Random m = new Random();
Random n = new Random();
void aim()
{
p = n.Next(2, 5);
OppScore.Text = (string.Format("Target Score: {0}", p));
}
public void RunTimer_Tick(object sender, EventArgs e)
{
target();
if (lives <= 0)
{
left--;
lives = 2;
TimesLeft.Text = (string.Format("attempts left: {0}", left));
TimesLeft.Text = Convert.ToString(left);
}
if (left <= 0)
{
this.Hide();
new Game_Over().Show();
RunTimer.Stop();
}
if (counter < 1)
{
aim();
counter++;
}
if (score > p)
{
this.Hide();
new Winner().Show();
RunTimer.Stop();
}
}
В приведенном выше коде вы можете видеть, что, объявив переменную вне метода и внутри класса, ваша переменная становится видимой для всех методов в классе.
private int p;