我目前正在开发一款简单的Java游戏,但我遇到了一个问题。我什么时候运行代码它会为敌人吐出一个随机数,但它不会一直触发if then语句。任何人都可以帮我解决这个问题吗?
public static void main(String[] args) {
// TODO code application logic here\
Random rnd = new Random();
int playerlevel = 1;
int playermaxdamage = 9;
int playermindamage = 1;
int playerhealthrng = rnd.nextInt(11 - 7) + 7;
int playerhealth = playerlevel * playerhealthrng;
int playerdamage = rnd.nextInt(playermaxdamage - playermindamage) + 1;
int enemytyperngmax = 10;
int enemytyperngmin = 1;
int enemytyperngreal = 0;
int enemyratdamagemaxrng = 3;
int enemyratdamageminrng = 1;
int enemyrathealthmaxrng = 5;
int enemyrathealthminrng = 1;
int enemyratnumberrangehigh = 5;
int enemyratnumberrangelow = 1;
int noenemynumberrangehigh = 6;
int noenemynumberrangelow = 9;
int enemydragonnumberrangehigh = 10;
int enemydragonnumberrangelow = 10;
int enemyrathealthreal = rnd.nextInt (enemyrathealthmaxrng - enemyrathealthminrng) + 1;
int enemytyperng = rnd.nextInt(enemytyperngmax - enemytyperngmin) + 1;
String asktowalk = "Do you want to move forward?";
String playerinfolevel = ("Player's Current level is " + playerlevel);
String playerinfohealth = ("Player's Current Health is " + playerhealth);
String playerdamagedealt = ("Player did " + playerdamage + " to enemy");
String enemyratinfo = ("A Rat has appered with " + (enemyrathealthreal) + " Hp");
String enemynoninfo = ("You are Safe . . . for now");
String enemydragoninfo = ("You have uncovered a Danges beast he swings for 2,147,483,647 Damange");
enemyratdamagemaxrng = rnd.nextInt(enemyratdamagemaxrng - enemyratdamageminrng) + 1;
System.out.println(enemyratdamagemaxrng);
if (enemytyperng > enemyratnumberrangelow && enemytyperng < enemyratnumberrangehigh)
System.out.println(enemyratinfo);
if (enemytyperng > noenemynumberrangelow && enemytyperng < noenemynumberrangehigh)
System.out.println(enemynoninfo);
if (enemytyperng == enemydragonnumberrangehigh)
System.out.println(enemydragoninfo);
}
}
答案 0 :(得分:0)
你有:
if (enemytyperng > noenemynumberrangelow && enemytyperng < noenemynumberrangehigh)
System.out.println(enemynoninfo);
如果enemytyperng大于9并且敌人小于6;显示enemynoninfo。
但是,一个值不可能大于9且小于6.(也许你的意思是使用OR ||运算符?)或者,也许你在将这些值分配给变量时会混淆这些值。
此外,您正在随机生成0到8之间的数字,然后再添加1.因此它永远不会大于9.请记住,随机数生成器是独占的,这意味着rnd.nextInt(9)只会生成值0和8。
这同样适用于您的上一个if语句。它永远不会等于10,因为它可以等于的最大值是9。
所以如果你想生成1到10之间的随机数;尝试
rand.nextInt(10) + 1;
但你拥有的基本上是
rand.nextInt(9) + 1;
附注:您编写的代码存在很多问题。我强烈建议你选择一本实际的大学水平教科书,并从头到尾继续学习。