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