无法捕获main方法中生成的随机数?

Pri*_*ank 1 java

我正在运行此代码,但我无法访问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)

看看它是否有效