Update Pakete
This commit is contained in:
194
src/de/jaujau/audio/Spielerverwaltung.java
Executable file
194
src/de/jaujau/audio/Spielerverwaltung.java
Executable file
@@ -0,0 +1,194 @@
|
||||
package de.jaujau.daten;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* Verwaltung der Spieler und deren Highscore
|
||||
* @author Alaa Aldin
|
||||
*
|
||||
*/
|
||||
public class Spielerverwaltung {
|
||||
|
||||
|
||||
private File datei;
|
||||
private ArrayList <Spielerdaten> spielerliste = new ArrayList<Spielerdaten>();
|
||||
private String aktuellerSpielerName;
|
||||
private int aktuellerSpielerNr;
|
||||
private boolean debug;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Datei
|
||||
*/
|
||||
public Spielerverwaltung(String Datei) {
|
||||
datei = new File(Datei);
|
||||
spielerliste = new ArrayList<Spielerdaten>();
|
||||
aktuellerSpielerName = "";
|
||||
aktuellerSpielerNr = -1;
|
||||
debug = true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Spieler Liste aus Datei einlesen
|
||||
*/
|
||||
public void lesenDatei() {
|
||||
if(datei.exists() || datei.canRead()) {
|
||||
BufferedReader reader;
|
||||
try {
|
||||
reader = new BufferedReader(new FileReader(datei));
|
||||
String line = reader.readLine();
|
||||
while (line != null) {
|
||||
String [] newline = line.split(";");
|
||||
|
||||
//Nur einlesen wenn 2 Objekte vorhanden sind
|
||||
if(newline.length == 2) {
|
||||
String name = newline[0];
|
||||
int score = Integer.parseInt(newline[1]);
|
||||
spielerliste.add(new Spielerdaten (name,score));
|
||||
}
|
||||
line = reader.readLine();
|
||||
}
|
||||
reader.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if(debug)System.out.println("SPIELERVERWALTUN: " + spielerliste.size() + " Enträge gelesen");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Spieler liste in datei schreiben
|
||||
*/
|
||||
public void schreibeDatei() {
|
||||
if(spielerliste.size() > 0) {
|
||||
//Spielerliste ist nicht leer
|
||||
try {
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(datei)); //Erzeugen eines effizienten Writers für Textdateien
|
||||
for (int i = 0; i < spielerliste.size(); i++) {
|
||||
writer.write(spielerliste.get(i).getName() + ";" + Integer.toString(spielerliste.get(i).getPunktestand()));
|
||||
writer.newLine();
|
||||
}
|
||||
writer.close();
|
||||
}
|
||||
catch(IOException ioe) {
|
||||
System.err.println(ioe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param spielername
|
||||
*/
|
||||
public void setSpieler(String spielername) {
|
||||
if(spielerVorhanden(spielername)) {
|
||||
aktuellerSpielerName = spielername;
|
||||
aktuellerSpielerNr = getSpielerNr(spielername);
|
||||
if(debug)System.out.println("SPIELERVERWALTUN: Spieler " + spielername + " gesetzt");
|
||||
}
|
||||
else {
|
||||
spielerliste.add(new Spielerdaten(spielername,0));
|
||||
aktuellerSpielerNr = getSpielerNr(spielername);
|
||||
if(debug)System.out.println("SPIELERVERWALTUN: Spieler " + spielername + " hinzugefügt");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getSpieler() {
|
||||
return aktuellerSpielerName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Highscore Liste als String Array ausgeben
|
||||
* @return
|
||||
*/
|
||||
public String[][] getHighscoreTabelle() {
|
||||
String [][] highscore = new String[spielerliste.size()][2];
|
||||
for(int i = 0; i < spielerliste.size(); i++) {
|
||||
highscore[i][0] = spielerliste.get(i).getName();
|
||||
highscore[i][1] = Integer.toString(spielerliste.get(i).getPunktestand());
|
||||
}
|
||||
|
||||
return highscore;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gibt das Level des Aktuellenspielers zurück
|
||||
* @return
|
||||
*/
|
||||
public int getLevel() {
|
||||
if(spielerliste.get(aktuellerSpielerNr).getPunktestand() > 0) {
|
||||
return (int) Math.log(spielerliste.get(aktuellerSpielerNr).getPunktestand());
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param punkte
|
||||
*/
|
||||
public void erhoehePunkte(int punkte) {
|
||||
int punkteNeu = spielerliste.get(aktuellerSpielerNr).getPunktestand() + punkte;
|
||||
if(punkteNeu >= 0) {
|
||||
spielerliste.get(aktuellerSpielerNr).setPunktestand(punkteNeu);
|
||||
if(debug)System.out.println("SPIELERVERWALTUN: Punkte Neu: " + punkteNeu);
|
||||
}
|
||||
else {
|
||||
if(debug)System.out.println("SPIELERVERWALTUN: Punkte Neu: 0");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
private boolean spielerVorhanden(String name) {
|
||||
for(int i = 0; i < spielerliste.size(); i++) {
|
||||
if(spielerliste.get(i).getName().equals(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param spielername
|
||||
* @return
|
||||
*/
|
||||
private int getSpielerNr(String spielername) {
|
||||
for(int i = 0; i < spielerliste.size(); i++) {
|
||||
if(spielerliste.get(i).getName().equals(spielername)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user