【问题标题】:Giving an object random stats给一个对象随机统计
【发布时间】:2015-10-02 18:16:38
【问题描述】:

我一直想做一个文本 rpg 有一段时间了,但终于开始为一个小原型制作一些对象和类。我想制造一堆敌人,但没有单独估算所有敌人的统计数据,我决定使用 java util.Random 来生成 1-100 之间的随机整数,但是当我在主要测试中查看对象整数时文件都为 0。 l();方法只是我制作的一种方法,其中没有打印输出,并带有一个对象以节省我一些时间。 stat 值会给我一个随机数,但 l(goblin.health); 仍然为 0。有关如何解决此问题的任何建议?

Random stats = new Random(); 
int stat = stats.nextInt(100);
l(stat);

enemies goblin = new enemies(stat,stat,stat,stat);
l(goblin.health);

【问题讨论】:

  • enemies 的构造函数没有正确设置字段,l() 没有正确打印输出,或者stats.nextInt 每次运行时随机返回 0。跨度>
  • 我明白了!这是我的构造函数的问题! public enemies(int health, int magic, int attack, int defense) { super(health, magic, attack, defense); } 我忘记将整数添加到 super() 中。

标签: java random


【解决方案1】:

stats.nextInt(100) 表示整数 [0,100) 包括“0”,不包括“100”。所以应该是stats.nextInt(100) + 1

Random stats = new Random(); 
int health= stats.nextInt(100) + 1; 
int magic= stats.nextInt(100) + 1; 
int attack= stats.nextInt(100) + 1;
int defense= stats.nextInt(100) + 1; 

enemies goblin = new enemies(health, magic, attack, defense); // enemies: class name should start with uppercase letter as "Enemies"
System.out.println(goblin.health);
System.out.println(magic.health);
System.out.println(attack.health);
System.out.println(defense.health);

【讨论】:

    猜你喜欢
    • 2011-09-18
    • 1970-01-01
    • 2014-05-14
    • 2015-11-10
    • 2021-10-23
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多