Solved 3.2.1
This commit is contained in:
parent
4cc86d3c23
commit
f202129510
1 changed files with 99 additions and 95 deletions
|
|
@ -1,95 +1,99 @@
|
||||||
package game;
|
package game;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Klasse stellt einen Eintrag in der Bestenliste dar.
|
* Diese Klasse stellt einen Eintrag in der Bestenliste dar.
|
||||||
* Sie enthält den Namen des Spielers, das Datum, die erreichte Punktzahl sowie den Spieltypen.
|
* Sie enthält den Namen des Spielers, das Datum, die erreichte Punktzahl sowie den Spieltypen.
|
||||||
*/
|
*/
|
||||||
public class ScoreEntry implements Comparable<ScoreEntry> {
|
public class ScoreEntry implements Comparable<ScoreEntry> {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private Date date;
|
private Date date;
|
||||||
private int score;
|
private int score;
|
||||||
private String gameType;
|
private String gameType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Erzeugt ein neues ScoreEntry-Objekt
|
* Erzeugt ein neues ScoreEntry-Objekt
|
||||||
* @param name der Name des Spielers
|
* @param name der Name des Spielers
|
||||||
* @param score die erreichte Punktzahl
|
* @param score die erreichte Punktzahl
|
||||||
* @param date das Datum
|
* @param date das Datum
|
||||||
* @param gameGoal der Spieltyp
|
* @param gameGoal der Spieltyp
|
||||||
*/
|
*/
|
||||||
private ScoreEntry(String name, int score, Date date, String gameGoal) {
|
private ScoreEntry(String name, int score, Date date, String gameGoal) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.score = score;
|
this.score = score;
|
||||||
this.date = date;
|
this.date = date;
|
||||||
this.gameType = gameGoal;
|
this.gameType = gameGoal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Erzeugt ein neues ScoreEntry-Objekt
|
* Erzeugt ein neues ScoreEntry-Objekt
|
||||||
* @param player der Spieler
|
* @param player der Spieler
|
||||||
* @param gameGoal der Spieltyp
|
* @param gameGoal der Spieltyp
|
||||||
*/
|
*/
|
||||||
public ScoreEntry(Player player, Goal gameGoal) {
|
public ScoreEntry(Player player, Goal gameGoal) {
|
||||||
this.name = player.getName();
|
this.name = player.getName();
|
||||||
this.score = player.getPoints();
|
this.score = player.getPoints();
|
||||||
this.date = new Date();
|
this.date = new Date();
|
||||||
this.gameType = gameGoal.getName();
|
this.gameType = gameGoal.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(ScoreEntry scoreEntry) {
|
public int compareTo(ScoreEntry scoreEntry) {
|
||||||
return Integer.compare(this.score, scoreEntry.score);
|
return Integer.compare(this.score, scoreEntry.score);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Schreibt den Eintrag als neue Zeile mit dem gegebenen {@link PrintWriter}
|
* Schreibt den Eintrag als neue Zeile mit dem gegebenen {@link PrintWriter}
|
||||||
* Der Eintrag sollte im richtigen Format gespeichert werden.
|
* Der Eintrag sollte im richtigen Format gespeichert werden.
|
||||||
* @see #read(String)
|
* @see #read(String)
|
||||||
* @see Date#getTime()
|
* @see Date#getTime()
|
||||||
* @param printWriter der PrintWriter, mit dem der Eintrag geschrieben wird
|
* @param printWriter der PrintWriter, mit dem der Eintrag geschrieben wird
|
||||||
*/
|
*/
|
||||||
public void write(PrintWriter printWriter) {
|
public void write(PrintWriter printWriter) {
|
||||||
// TODO: ScoreEntry#write(PrintWriter)
|
// TODO: ScoreEntry#write(PrintWriter)
|
||||||
}
|
printWriter.println(this.name + ";" + this.date + ";" + this.score + ";" + this.gameType);
|
||||||
|
}
|
||||||
/**
|
|
||||||
* List eine gegebene Zeile ein und wandelt dies in ein ScoreEntry-Objekt um.
|
/**
|
||||||
* Ist das Format der Zeile ungültig oder enthält es ungültige Daten, wird null zurückgegeben.
|
* List eine gegebene Zeile ein und wandelt dies in ein ScoreEntry-Objekt um.
|
||||||
* Eine gültige Zeile enthält in der Reihenfolge durch Semikolon getrennt:
|
* Ist das Format der Zeile ungültig oder enthält es ungültige Daten, wird null zurückgegeben.
|
||||||
* den Namen, das Datum als Unix-Timestamp (in Millisekunden), die erreichte Punktzahl, den Spieltypen
|
* Eine gültige Zeile enthält in der Reihenfolge durch Semikolon getrennt:
|
||||||
* Gültig wäre beispielsweise: "Florian;1546947397000;100;Eroberung"
|
* den Namen, das Datum als Unix-Timestamp (in Millisekunden), die erreichte Punktzahl, den Spieltypen
|
||||||
*
|
* Gültig wäre beispielsweise: "Florian;1546947397000;100;Eroberung"
|
||||||
*
|
*
|
||||||
* @see String#split(String)
|
*
|
||||||
* @see Long#parseLong(String)
|
* @see String#split(String)
|
||||||
* @see Integer#parseInt(String)
|
* @see Long#parseLong(String)
|
||||||
* @see Date#Date(long)
|
* @see Integer#parseInt(String)
|
||||||
*
|
* @see Date#Date(long)
|
||||||
* @param line Die zu lesende Zeile
|
*
|
||||||
* @return Ein ScoreEntry-Objekt oder null
|
* @param line Die zu lesende Zeile
|
||||||
*/
|
* @return Ein ScoreEntry-Objekt oder null
|
||||||
public static ScoreEntry read(String line) {
|
*/
|
||||||
// TODO: ScoreEntry#read(String)
|
public static ScoreEntry read(String line) {
|
||||||
return null;
|
String[] parts = line.split(";");
|
||||||
}
|
if(parts.length != 4)
|
||||||
|
return null;
|
||||||
public Date getDate() {
|
ScoreEntry res = new ScoreEntry(parts[0], Integer.parseInt(parts[1]), new Date(Long.parseLong(parts[2])), parts[3]);
|
||||||
return date;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public Date getDate() {
|
||||||
return this.name;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getScore() {
|
public String getName() {
|
||||||
return this.score;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMode() {
|
public int getScore() {
|
||||||
return this.gameType;
|
return this.score;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public String getMode() {
|
||||||
|
return this.gameType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue