Я программирую консольную «игру», и мне нужно объявить «hp» символа в операторах IF, которые зависят от уровня этого символа.Объявить переменную в выражении if, а затем использовать ее позже в коде
if ((char_level > 0) && (char_level < 4))
{
char_hp = 100;
}
if ((level > 4) && (level < 6))
{
char_hp = 120;
}
if ((level > 6) && (level < 8))
{
char_hp = 150;
}
if ((level > 8) && (level < 10))
{
char_hp = 180;
}
Затем мне нужно использовать его позже в коде в бою. После успешного боя персонаж получает новый уровень, и после этого программа вернется, чтобы проверить эти операторы IF, и если уровень больше 4, значение hp персонажа будет увеличено до 120. Но объявление char_hp в операторах IF не изменяет значение от hp в целом, и когда следующий бой наступает после достижения 4-го уровня, hp персонажа все еще похож на конец предыдущего боя. Я новичок в программировании на C#, и я пробовал все, но я не могу его решить, если это возможно.
Та же проблема с «л.с.» противника, который случайно сгенерированных ... то мне нужно, чтобы использовать его в этой борьбе
if((level>0) && (level<4))
{
random_enemy_hp = RND.Next(89, 111);
goto enemy;
}
if((level>4) && (level<6))
{
random_enemy_hp = RND.Next(109, 141);
goto enemy;
}
if ((level > 6) && (level < 8))
{
random_enemy_hp = RND.Next(149, 184);
goto enemy;
}
if ((level > 8) && (level < 10))
{
random_enemy_hp = RND.Next(189, 221);
goto enemy;
}
EDIT: Я имел в виду «значения экономии на переменные» в IF , поэтому я могу использовать их позже в коде. Так начинается мой код, тогда есть «Console.WriteLine()» - s, принцип боя и показания, показанные выше.
string name;
int char_hp = 100;
int level = 1;
int random_enemy_hp;
Random RND = new Random();
'goto' в C#! Оно живет! – canon
Что бы вы ни делали на C#, не используйте «goto». – nvoigt
Вы не _declaring_ 'char_hp' в любом из кода, который вы нам показали. – canon