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