我正在编写一个控制台“游戏”,我需要在IF语句中声明一个“hp”字符,这取决于该字符的级别。
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.但是在IF语句中声明char_hp不会改变值一般情况下,当下一场战斗到达4级后,角色的hp仍然像前一场战斗结束时那样。我是C#编程的新手,我已经尝试过所有的东西,但是如果可能的话,我无法解决它。
同样的问题是随机生成的敌人的“hp”...然后我需要在那场战斗中使用它
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;
}
编辑:我的意思是“在IF语句中保存值到变量”,所以我稍后可以在代码中使用它们。这就是我的代码开始的方式,然后是“Console.WriteLine()” - s,上面显示的战斗和陈述的原理。
string name;
int char_hp = 100;
int level = 1;
int random_enemy_hp;
Random RND = new Random();
答案 0 :(得分:1)
你完全走错了路。你应该做的事情如下:
int[] charLevelHp = { 100, 100, 100, 100,
120, 120, 120,
150, 150,
180, 180 };
int charLevel = 1;
int charHp = charLevelHp[charLevel];
答案 1 :(得分:0)
我不禁注意到,您与第一对if语句的char_level
进行了比较,但是您将后续if语句与level
进行比较
if ((char_level > 0) && (char_level < 4))
{
char_hp = 100;
}
if ((level > 4) && (level < 6))
{
char_hp = 120;
}
我认为您可能打算在所有条件下使用char_level
。
if ((char_level > 0) && (char_level < 4))
{
char_hp = 100;
}
if ((char_level > 4) && (char_level< 6))
{
char_hp = 120;
}
如果这是问题,那就与你所看到的错误类型一致。