运行此代码时出错,程序关闭该框

时间:2016-12-16 13:53:38

标签: java eclipse

我正在尝试创建一个简单版本的游戏关闭框。 Shut the Box是一款骰子游戏 - 玩家轮流使用。运行代码时,“StdRandom”和“scan”会出错。有人能帮忙吗? 这是我得到的代码。

  public class test {

public static void main(String[] args) {
    System.out.println("Shut the Box");
    System.out.println("123456789");
    System.out.println("Your goal is to close all of them, leaving the game in this state:");

    boolean[] close = new boolean[10];
    for (int i = 1; i <= 9; i++) {
        System.out.print(i);
    }
    System.out.println();
    int score = 45;
    while (true) {
        int roll = StdRandom.uniform(1, 7);
        if (close[7] && close[8] && close[9]) {
            System.out.println("7, 8, and 9 are close,you can only roll one dice");
        } else {
            roll += StdRandom.uniform(1, 7);
        }
        System.out.println("You rolled " + roll + ".");
        System.out.print("How many levers will you close? ");
        int count = scan.readInt();
        if (count == 0) {
            System.out.println("Game over. Your final score is " + score + ".");
            return;
        }
        System.out.println("Enter the numbers of the levers you want to close.");
        int total = 0;
        for (int i = 0; i < count; i++) {
            int n = scan.readInt();
            if (close[n]) {
                System.out.println("That lever is already close. You forfeit the game.");
                return;
            }
            close[n] = true;
            score -= n;
            total += n;
        }
        if (roll != total) {
            System.out.println("Those numbers don't add up to " + roll + "Game over");
            return;
        }
        for (int i = 1; i <= 9; i++) {
            if (close[i]) {
                System.out.print("-");
            } else {
                System.out.print(i);
            }           
        }
        System.out.println();
        if (score == 0) {
            System.out.println("You've shut the boxes! you win!");
            return;
        }
    }
}

 }

当我运行它时,我收到此错误

  Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
     StdRandom cannot be resolved
  StdRandom cannot be resolved
  scan cannot be resolved
  scan cannot be resolved

 at test.main(test.java:15)

1 个答案:

答案 0 :(得分:0)

对于随机数,我会用这个:

Random r = new Random();
int roll = r.next(6) + 1;

请参阅Getting random numbers in Java

对于您的扫描,您必须先声明它(Berger指出)并将其导入文档的顶部。

import java.utils.Scanner;

代码内部(声明和初始化):

Scanner sc = new Scanner(System.in);
int count = sc.nextInt();

请参阅How to read integer value from the standard input in Java

你的代码也有一些潜在的错误,我鼓励你阅读java上的一些堆栈主题,因为有很多!祝你好运!