Ejemplo n.º 1
0
 // Prüft, ob der angebene Highscore besser ist, als die, die in der ArrayList sind (Muss gleichen
 // LevelNamen haben!)
 public boolean isBetter(Highscore score) {
   for (Highscore hs : highscores) {
     if (hs.getLevelName().equalsIgnoreCase(score.getLevelName()))
       if (hs.getTime() < score.getTime()) return false;
   }
   return true;
 }
Ejemplo n.º 2
0
  public void readHighscores() {
    // Lese Datei "highscores"
    File f = new File("./highscores");
    if (!f.exists())
      // Wenn nicht vorhanden -> Erstelle neue
      createHighscoreFile(f);
    // Lösche alte Highscores
    highscores.clear();
    try {
      // Neu Laden der Datei, falls sie erstellt wurde
      f = new File("./highscores");
      BufferedReader br = new BufferedReader(new FileReader(f));
      String row = "";
      // Wenn die Zeile nicht null ist
      while ((row = br.readLine()) != null) {
        // Kommentare starten mit #
        if (row.startsWith("#")) continue;
        String[] splitted = row.split(":");

        Highscore hs = new Highscore(splitted[0], splitted[1], Long.parseLong(splitted[2]));
        // Loop durch alle bisher eingetragenen Highscores
        for (Iterator<Highscore> it = highscores.iterator(); it.hasNext(); ) {
          Highscore s = it.next();
          // Falls der eingetragene Highscore(s) schlechter ist, und das Level gleich heißt,
          // entferne das eingetragene
          if (s.getTime() >= hs.getTime() && s.getLevelName().equalsIgnoreCase(hs.getLevelName())) {
            it.remove();
          }
        }

        highscores.add(hs);
      }
      br.close();
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
Ejemplo n.º 3
0
  public void addNewHighscore(Highscore score) {
    try {
      // Erstellung, da nicht vorhanden
      File f = new File("./highscores");
      FileWriter fw = new FileWriter(f, true);
      BufferedWriter bw = new BufferedWriter(fw);
      bw.newLine();
      bw.write(score.getLevelName() + ":" + score.getPlayerName() + ":" + score.getTime());
      bw.close();
      fw.close();

      // Die Datei nicht sichtbar machen, Cheat-Schutz :)
      Runtime.getRuntime().exec("attrib +H " + f.getName());
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }