0

I am trying to create a simple version of the game shut the box. Shut the Box is a dice game – where players take turns. When running the code there are errors with 'StdRandom' and 'scan'. Anyone able to help? Here is the code i got.

  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;
        }
    }
}

 }

When i run it i get this error

  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)
A.Brooke
  • 17
  • 4

1 Answers1

0

For random numbers, I would use this :

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

See Getting random numbers in Java

For your scan, you have to declare it first (Berger pointed that out) AND import it at the top of your document.

import java.utils.Scanner;

Inside your code (declaration and initialization):

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

See How to read integer value from the standard input in Java

Your code also has a couple of potential bugs, I encourage you to read some stack subject on java as there are plenty! Good luck!

Community
  • 1
  • 1
rmTheZ
  • 66
  • 1
  • 11