dice game in java (calling from a class with a constructor)
我正试图用一个能给出1到6之间随机数的骰子做一个骰子游戏。我有一个称为die的类,它由一个构造函数和两个方法组成。构造器的主要目的是启动一个随机值,这两种方法应该掷骰子并分别返回值。我的问题是,我不知道如何掷骰子和检索数字后,我已经做了一个对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.Random; class Die{ int dots,roll; Random number = new Random(); public Die(){ int dots = number.nextInt(6)+1 ; } public void roll(){ roll = number.nextInt(dots)+1; } public int getDots(){ return roll; } } public class Uppg1 { public static void main (String args[]){ Die die = new Die(); System.out.println("Du fick"+die.getDots()); } } |
我的代码似乎是转到构造函数而不是方法。我需要来自构造函数的值,然后掷骰子,然后从getdots方法获取值。
此外,您从不调用
你可以通过在uppg1主方法中调用
我已经为您修改了代码:import java.util.random;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Die{ int dots,roll; Random number = new Random(); public Die(){ dots = number.nextInt(6)+1 ; } public void roll(){ roll = number.nextInt(dots)+1; } public int getDots(){ return roll; } } public class Uppg1 { public static void main (String args[]){ Die die = new Die(); die.roll(); System.out.println("Du fick" +die.getDots()); } } |
从die构造函数中移除int,因为它已经定义为全局,你的计划。在任何地方都不调用Roll方法,因此需要调用它。
1 | int dots = number.nextInt(6)+1 ; |
号
这是不同于变量的变量
1 2 | class Die{ int dots,roll; |
所以就这样吧
1 | dots = number.nextInt(6)+1 ; |
。
这样你就能得到正确的值。
在
1 2 3 | public Die(){ dots = number.nextInt(6)+1 ; } |