我正在运行此代码,但我无法访问main方法中的类变量(pg和dg).我得到的输出是
经销商正在开始游戏
他已经猜到了从0到9的数字
现在是时候猜猜
玩家猜测
数字玩家1猜到的是0
玩家猜测
数字玩家2猜到的是0
玩家猜测
数字玩家3猜到的是0
经销商猜测为0
所有人都猜对了
我无法捕获方法中生成的随机数.
class player
{
public int pg = 0;
public void pguess()
{
System.out.println("Player is guessing");
int pg = (int)(Math.random() * 10);
}
}
class dealer
{
public int dg = 0;
public void guess()
{
System.out.println("Dealer is starting the game");
System.out.println("He has guessed a number from 0 to 9");
System.out.println("Now it is your time to guess");
int dg = (int)(Math.random() * 10);
}
public void dealerdisplay()
{
System.out.println("The dealer guess was " + dg);
}
}
public class gameOn
{
public static void main(String args[])
{
dealer d = new dealer();
player a = new player();
player b = new player();
player c = new player();
d.guess();
a.pguess();
System.out.println("The number player 1 guessed is " + a.pg);
b.pguess();
System.out.println("The number player 2 guessed is " + b.pg);
c.pguess();
System.out.println("The number player 3 guessed is " + c.pg);
d.dealerdisplay();
if ((d.dg == a.pg) && (d.dg == b.pg) && (d.dg == c.pg))
System.out.println("All have guessed correctly");
else if ((d.dg == a.pg) && (d.dg == b.pg) || (d.dg == a.pg) &&
(d.dg == c.pg) || (d.dg == b.pg) && (d.dg == c.pg))
System.out.println("Two have have guessed correctly");
else if ((d.dg == a.pg) || (d.dg == b.pg) || (d.dg == c.pg))
System.out.println("One has guessed correctly");
else
System.out.println("No one has guessed correctly");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是你的问题:
System.out.println("Player is guessing");
int pg = (int)(Math.random()*10);
}
Run Code Online (Sandbox Code Playgroud)
您正在声明一个新的本地int pg而不是设置类成员.改成:
System.out.println("Player is guessing");
pg = (int)(Math.random()*10);
}
Run Code Online (Sandbox Code Playgroud)
看看它是否有效