Java 简单猜谜游戏中的记分牌

Java 简单猜谜游戏中的记分牌,java,Java,下面是我猜游戏的代码 我正在尝试实现一个记分板,该记分板在球员输入姓名后显示。只要应用程序在运行,记分板就应该保存变量playername、count和totalTime 它还应该按照猜测的数量进行排序——在记分板上猜测的数量越少=越高 如果两个玩家有相同数量的猜测,那么它会根据谁的猜测时间更快进行排序。我试过做一个arraylist,但没有任何运气。我试图让索引在每次游戏重置时增加1,这样变量就不会被新变量覆盖 我也很难让arraylist接受长字符串 import java.util. *;

下面是我猜游戏的代码

我正在尝试实现一个记分板,该记分板在球员输入姓名后显示。只要应用程序在运行,记分板就应该保存变量playername、count和totalTime

它还应该按照猜测的数量进行排序——在记分板上猜测的数量越少=越高

如果两个玩家有相同数量的猜测,那么它会根据谁的猜测时间更快进行排序。我试过做一个arraylist,但没有任何运气。我试图让索引在每次游戏重置时增加1,这样变量就不会被新变量覆盖

我也很难让arraylist接受长字符串

import java.util. *;

class Game {        

public void start() {

    int randomNumber = (int) (Math.random() * 1000);
    int number = -1, index, count;  
    String decision, guess, playername;
    long currentTime = 0, newTime, totalTime;
    boolean quitting = false;
    count = 0;
    System.out.println("Welcome to the Guessing Game");
    System.out.println("Type \"quit\" to quit at anytime.");
    Scanner scan  = new Scanner(System.in);
    System.out.println("Try to guess the number. Range is from 1 - 1000: ");
    guess = scan.nextLine();
    if ("quit".equals(guess)) {
        System.out.println("Quitting...");
        quitting = true;
    } else {
        number = Integer.parseInt(guess);
    }

    while (number != randomNumber && number > -1){
        if (number >= 1001 || number <= 1) {
            System.out.println("Number is not between 1 - 1000. Enter another number");
        }

        if (number != randomNumber && number > randomNumber && number <= 1000 && number >= 1) {
            System.out.println("Number is too high. Try again!");
        }

        if (number != randomNumber && number < randomNumber && number < 1000 && number > 1) {
            System.out.println("Number is too low. Try again!");
        }

        if (number != randomNumber) {
            count = count + 1;
        }

        if (number != randomNumber) {
            Scanner scannew  = new Scanner(System.in);
            System.out.println("Enter a different number: ");
            guess = scannew.nextLine();
            if ("quit".equals(guess)) {
                System.out.println("Quitting...");
                quitting = true;
            } else {
                number = Integer.parseInt(guess);
            }
        }

        if (count == 1) {
            long lDateTime = new Date().getTime();
            currentTime = lDateTime / 1000;
        }

        if (quitting) {
            break;
        }
    }

    if (!quitting) {
        long DateTime = new Date().getTime();
        newTime = DateTime / 1000;
        totalTime = newTime - currentTime;

        System.out.println("You win! Your total amount of guesses was: " + count + " Total time (seconds): " + (totalTime));

        Scanner name  = new Scanner(System.in);
        System.out.println("Enter your name: ");
        playername = scan.nextLine();


        //ArrayList<Integer> score = new ArrayList<Integer>();
        //score.add(index, count);
        //System.out.println(score);
        //index++;

        Scanner decision1 = new Scanner(System.in);
        System.out.println("Do you want to play again? y/n");
        decision = decision1.nextLine();

        if ("y".equals(decision)) {
            Game one = new Game();
            one.start();
        }

        if ("n".equals(decision)) {
            System.out.println("Quitting...");
        }
    }
    scan.close();
}
}

每次向ArrayList添加分数时都会重新初始化它,因此它永远不会包含多个值。只需初始化一次,以及随机数等


此外,您不需要索引。Just score.addcount将在所有已存在的分数之后添加一个新分数。

您希望分数列表从一次跑步持续到下一次跑步,对吗?如果是这样,您需要将其保存在文件中。您的ArrayList仅存在于内存中,并在程序退出后立即消失。否,该列表可能在程序退出后丢失。我只是很难让记分板真正起作用。