2012-09-18 24 views
-1

我有diffuculties排序輸入,我想它按最低時間先排序。我是新來的java所以我不知道這麼多我已經做了一個數字遊戲,但我無法設法排序的最低時間在這裏是我迄今爲止做的高分。排序高分。與分揀時間輸入Diffuculties

import java.io.*; 
import java.util.*; 

public class teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest { 

    private static void start() throws IOException { 
     int number = (int) (Math.random() * 1001); 
     BufferedReader reader; 
     reader = new BufferedReader(new InputStreamReader(System.in)); 
     Scanner input = new Scanner(System.in); 

     String scorefile = "p-lista_java"; 
     int försök = 0; 
     int gissning = 0; 
     String namn; 
     String line = null; 
     String y; 
     String n; 
     String val ; 
     String quit = "quit"; 

     System.out.println("Hello and welcome to this guessing game" + 
       "\nStart guessing it's a number between 1 and 1000:"); 

     long startTime = System.currentTimeMillis(); 
     while (true){ 
      System.out.print("\nEnter your guess: "); 
      gissning = input.nextInt(); 
      försök++; 



      if (gissning == number){ 
       long endTime = System.currentTimeMillis(); 
       long gameTime = endTime - startTime; 
       System.out.println("Yes, the number is " + number + 
         "\nYou got it after " + försök + " guesses " + " times in " + (int)(gameTime/1000) + " seconds."); 
       System.out.print("Please enter your name: "); 
       namn = reader.readLine(); 


       try { 
        BufferedWriter outfile 
          = new BufferedWriter(new FileWriter(scorefile, true)); 
        outfile.write(namn + " " + försök +"\t" + (int)(gameTime/1000) + "\n"); 
        outfile.close(); 
       } catch (IOException exception) { 

       } 


       break; 

      } 



      if(gissning < 1 || gissning > 1000){ 
        System.out.println("Stupid guess! I wont count that..."); 
        --försök; 
      } 

      else if (gissning > number) 
       System.out.println(" Your guess is too high"); 

      else 
       System.out.println("Your guess is too low"); 
      } 



      try { 
       BufferedReader infile 
          = new BufferedReader(new FileReader(scorefile)); 
       while ((line = infile.readLine()) != null) { 
        System.out.println(line); 
       } 
       infile.close(); 
      } catch (IOException exception) { 


     } 

     System.out.println("Do you want to continue (Y/N)?"); 
      val=reader.readLine(); 

      if ((val.equals("y"))||(val.equals("Y"))){ 
       teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest.start(); 
      } 
      else 
       System.out.print("Thanks for playing"); 
      System.exit(0); 

    } 
} 
+0

Java有很好的排序功能,爲什麼不先閱讀一個關於它的教程? – dokaspar

回答

2

創建一個包含所有評分,時間和其他詳細信息的值對象。創建一個比較器,比較兩個持有者之間的組件。分類可以通過用比較器創建一套持有人來實現。

如果您希望按其他順序排列,請根據需要更新比較器。

Holder { 
    long time; 
    int score; 

    String name; 
} 

Comparator<Holder> { 
    int compare(Holder holder, Holder other){ 
     int result = holder.time - other.time; 
     if(0 == result){ 
      result = holder.score - other.score; 
     } 
     return result; 
    } 
} 
+0

我真的不知道你的意思。 – user1678998