当前位置: 首页 > 知识库问答 >
问题:

“猪”游戏Java程序出错

夔波
2023-03-14

我正在尝试编写一个程序来玩游戏猪,我两次得到这个错误,但我不知道为什么:“错误:无法找到符号扫描器sc=new Scanner(system.in);

非常感谢任何帮助。我对写代码很陌生,所以请你好心。:)另外,忽略奇怪的间距...在我的程序中它做得很正确,但我有困难让它正确地适合这里。

class Die {

    private final int MAX = 6;
    private int faceValue;

    public Die() {
        faceValue = 1;
    }

    public int roll() {
        faceValue = (int) (Math.random() * MAX) + 1;
        return faceValue;
    }

    public void setFaceValue(int value) {
        if (value > 0 && value <= MAX) {
            faceValue = value;
        }
    }

    public int getFaceValue() {
        return faceValue;
    }

    public String toString() {
        String result = Integer.toString(faceValue);
        return result;
    }
}

class PairOfDice {

    private Die die1, die2;

    public PairOfDice() {
        die1 = new Die();
        die2 = new Die();
    }

    public int roll() {
        return die1.roll() + die2.roll();
    }

    public int getTotalFaceValue() {
        return die1.getFaceValue() + die2.getFaceValue();
    }

    public void setDie1FaceValue(int value) {
        die1.setFaceValue(value);
    }

    public void setDie2FaceValue(int value) {
        die2.setFaceValue(value);
    }

    public int getDie1FaceValue() {
        return die1.getFaceValue();
    }

    public int getDie2FaceValue() {
        return die2.getFaceValue();
    }

    public String toString() {
        return "Die 1: " + die1.getFaceValue()
                        + " Die 2: " + die2.getFaceValue();
    }
}

public class Pig {

    int cTotal = 0;
    int pTotal = 0;
    static boolean play = true;
    static int s = 1;
    static int Max = 100;

    PairOfDice User = new PairOfDice();
    PairOfDice Comp = new PairOfDice();
    Scanner sc = new Scanner(System.in);
    static Pig game = new Pig();

    public static void main(String[] args) {
        while (play) {
            System.out.println("Computer Roll :");
            game.Comp();
            System.out.println("\nUser Roll :");
            game.User();
        }
    }

    public void User() {
        int tot = 0;
        System.out.println("\nUser");
        if (pTotal <= 100) {
            System.out.println("[Pass=0,Roll=1]");
            s = sc.nextInt();
            if (s == 1) {
                while (tot < 20 && s == 1) {
                    User.roll();
                    System.out.println(User);

                    if (User.getDie1FaceValue() == 1
                                    || User.getDie2FaceValue() == 1) {
                        System.out.println("Moves to Computer");
                        game.Comp();
                        s = 0;
                    } else if (User.getDie1FaceValue() == 1
                                    && User.getDie2FaceValue() == 1) {
                        pTotal = 0;
                        System.out.println("Moves to Computer");
                        game.Comp();
                        s = 0;
                    } else {
                        tot = tot + User.getTotalFaceValue();

                        pTotal = pTotal + User.getTotalFaceValue();
                        System.out.println("Round Total :" + tot);
                        System.out.println("User Total :" + pTotal);
                        System.out.println("[Pass=0,Roll=1] :");
                        s = sc.nextInt();
                    }
                }
            } else {
                System.out.println("\nControl Moves to Computer");
                game.Comp();
            }
        } else {
            play = false;
        }
    }

    public void Comp() {
        System.out.println("\n Computer");
        int tot = 0;
        if (cTotal <= 100) {
            while (tot < 20) {
                Comp.roll();
                System.out.println(Comp);

                if (Comp.getDie1FaceValue() == 1
                                || Comp.getDie2FaceValue() == 1) {
                    System.out.println("Moves to User");
                    game.User();
                } else if (Comp.getDie1FaceValue() == 1
                                && Comp.getDie2FaceValue() == 1) {
                    cTotal = 0;
                    System.out.println("Moves to User");
                    game.User();
                } else {
                    tot = tot + Comp.getTotalFaceValue();
                    cTotal = cTotal + Comp.getTotalFaceValue();
                    System.out.println("Round Total :" + tot);
                    System.out.println("Computer Total :" + cTotal);
                }
            }
        } else {
            play = false;
        }
    }
}

共有1个答案

文英达
2023-03-14

您指的是java.util.scanner而不是scanner导入java.util.scanner;

 类似资料:
  • 问题内容: 我正在研究Java中的游戏编程,看是否可行。进行搜索时,我发现了一些关于Java2D的旧参考资料,Project Darkstar(Sun的MMO服务器)和一些有关Java游戏编程的书籍。但是很多信息似乎已经有好几年了。 所以我要问的问题是,有人在Java SE 1.5或更高版本中创建游戏吗? 如果是这样,将使用什么框架,是否有最佳实践或库? 问题答案: 有一个叫做jMonkey(ht

  • 编写程序生成一个1-100之间的随机数,并将其作为秘密数字保存。然后程序将检查用户是否能猜出秘密号码。用户可以继续猜测数字,直到找到数字或者用户可以输入0,这将终止程序。 null 我被if语句卡住了,也许我的结构不正确。我不确定。

  • rollDice( )应使用兰德( )随机生成介于1-6之间的数字 返回兰德( )生成的数字 3)实现一个功能,功能原型为Int ;Playgame( Void ;);  根据用户的赢或输的次数给用户一个适当的消息 返回值为EXIT_SUCCESS 这里是我现在拥有的,但它告诉我有错误。有谁能帮我完成这个任务吗? ^ X.C:10:1:错误:程序中杂散“\240” X.C:12:1:错误:程序中杂

  • 包含在程序启动时启动的线程。这个线程包含一个循环,每40毫秒更新一次游戏并重新绘制()board。 备选办法B: 板创建一个摆动计时器。这个计时器的动作监听器是板本身。actionPerformed()方法每40毫秒运行一次,并更新game+repaints Board()。 谢谢

  • 每当我打开我的android应用程序,它就会触发三星galaxy S8上的游戏模式/游戏启动器。但这个应用程序不是一个游戏。在以前的版本中,该应用程序使用opengl,如果使用opengl,三星似乎将应用程序视为游戏。我已经删除了opengl代码,但三星仍然将该应用程序视为游戏。奇怪的是,当我更改应用程序ID时,应用程序会正常启动。所以,我认为三星将application-id作为游戏存储在某个地

  • 所以我为我的课做了一个抽动练习作业。我已经成功地创建了一个简单的Tic Tac Toe程序,但不知何故,检查绘制的方法有时并不正确。如果所有东西都填满了,但没有赢家,那就是平局。但如果除第0行第1列外,其他所有内容都已填满,则即使该框仍为空白,它仍将显示“Draw”。如果你不明白我的意思,就试着把所有的东西都填满,但不是赢,即使最后一个框没有填满,它也会说“平局”。我在代码中做错了什么????驱动