Hé les gars, merci pour l'aide précédente Avant d'essayer d'expliquer mon problème, vous devez savoir de quoi parle le code. C'est à peu près "Pour écrire un jeu dans lequel un utilisateur doit deviner un nombre aléatoire entre 1 et 1000. Le programme devrait lire un nombre du clavier, et imprimer si la supposition était trop haute, trop basse ou correcte. a deviné correctement, le programme imprime le nombre de devinettes faites et le temps et le nom de joueur.Quand un jeu est lancé le programme doit imprimer la liste entière des meilleurs scores, triés par le nombre de suppositions en ascendant "Problèmes liés à l'utilisation d'une minuterie en Java. Le minuteur ne mettra pas à jour
Le problème est lorsque vous jouez le jeu et quand vous parvenez à obtenir la bonne réponse, il ne montre pas l'heure, mais quand le highscore est imprimé, il montre là, Whats up avec cela parce que essayé de changer la déclaration booléenne, mais cela ne fonctionne pas. Voici une illustration du problème:
You guessed 2 times in 0 seconds.
Please enter your name.
gert
Want to go again?(y/n).....n
HighScore:
Tries Time Name
1 35 b
2 6 gert
donc en gros je suis assez coincé, j'espérais que les gars u pourrait me donner quelques conseils ou une sorte d'aide pour que je puisse résoudre le problème ,,,,, Toute aide est appréciée .... BTW c'est mon premier programme, fondamentalement encore dans la phase d'apprentissage Alors, prenez-le facile avec les commentaires. Le code est fourni ci-dessous:
import java.util.*;
import java.util.Scanner.*;
import java.util.ArrayList.*;
import java.util.Collections.*;
public class Main {
private static void start() {
int tries = 0 ;
int guess = -1;
String name ;
String quit = "quit";
String y = "yes";
String n = "no";
String currentGuess;
String another = ("y") ;
Scanner input = new Scanner (System.in);
ArrayList<Integer> score = new ArrayList<Integer>();
ArrayList<Long> tg = new ArrayList<Long>();
ArrayList<String> playern = new ArrayList<String>();
boolean a=false;
do {
a=false;
int answer = (int) (Math.random() * 1000 + 1) ;
System.out.println(" Welcome to Guessing Game ") ;
System.out.print("Please enter a number between 1 and 1000 : ");
currentGuess = input.nextLine();
long startTime = System.currentTimeMillis();
do
{
if (currentGuess.equalsIgnoreCase(quit))
{
System.out.println("Leaving Us So Soon?");
System.exit(0);
}
try {
guess = Integer.parseInt(currentGuess);
} catch (NumberFormatException nfe)
{
System.out.println(" Dude Can You Read, Only Digits ");
currentGuess = input.nextLine();
continue;
}
if (guess < 1 || guess > 1000)
{
System.out.println("Stupid Guess I Wont Count That.");
currentGuess = input.nextLine();
continue;
}
if (guess < answer)
{
System.out.println("too low "+answer);
currentGuess = input.nextLine();
tries++;
}
else if(guess > answer)
{
System.out.println("too high "+answer);
currentGuess = input.nextLine();
tries++;
}
else if (guess == answer)
{
//stop stop watch
long endTime = System.currentTimeMillis();
//calculate game time
long gameTime = endTime - startTime;
gameTime = (gameTime/1000);
System.out.println("You Rock Dude, Good Job!");
System.out.println("You guessed " + tries + " times in " + (int)(gameTime/1000) + " seconds.");
System.out.println("Please enter your name.");
name = input.nextLine();
score.add(tries) ;
playern.add(name);
tg.add(gameTime);
for (int g=0; g < score.size()-1; g++){
for (int b=g+1; b < score.size(); b++){
if (score.size()>1){
if (score.get (g) > score.get (b)){
Collections.swap(score, g, b);
Collections.swap(playern, g, b);
Collections.swap(tg, g, b);
}
}
if (score.get (g)==score.get(b) && tg.get (g) > tg.get(b))
{
Collections.swap(score, g, b);
Collections.swap(playern, g, b);
Collections.swap(tg, g, b);
}
}
}
boolean s = false ;
while (s==false)
{
System.out.print("Want to go again?(y/n).....");
currentGuess = input.nextLine();
if (currentGuess.matches("y"))
{
System.out.println("HighScore:");
System.out.println("Tries\tTimentName");
for (int j=0; j<score.size(); j++){
System.out.println(score.get(j) +"\t"+tg.get(j)+ "\t"+playern.get(j));
}
}
s=true;
}
//if user doesn't want to play again
if (currentGuess.matches("n"))
{ System.out.println("HighScore:");
System.out.println("Tries\tTime\t\tName");
for (int j=0; j<score.size(); j++){
System.out.println(score.get(j) +"\t"+tg.get(j)+ "\t"+playern.get(j));
}
System.out.println("Thanx For Playing.");
a=true;
s=true;
System.exit(0);
}
}
} while (guess != answer);
}while(a==false);
}
public static void main(String[] args) {
Main.start();
}
}
Existe-t-il une option «fermer pour un titre ennuyeux»? –
Pouvez-vous haz le debugz mon codez? –
Il a été édité avec reconnaissance. – Jivings