gruppe06-hufflepuff-projekt.../src/Language.java

163 lines
6.1 KiB
Java

/**
*
* Diese Klasse instanziert ein Objekt des Types Sprache. Dieses Objekt erlaubt
* Sprachausgaben in 3 verschiedenen Sprachen nämlich:
* 1. Deutsch (de) 2. Englisch (en) 3. Vietnamesisch (vn)
* Die Sprachen werden mit den Sprachkürzel (siehe Klammer) identifiziert.
*
* Die Sprachausgaben helfen dem Nutzer bei der Orientierung und geben den Spielfortschritt an.
* Die Defaultsprache ist deutsch
*
*/
public class Language {
//Enthält gewählte Sprache als Kürzel.
private String outputLanguage = "de";
//Gibt mögliche Sprachen vor.
private final String germanShortCut = "de";
private final String englishShortCut = "en";
private final String vietnameseShortCut = "vn";
public Language(String outputLanguage) {
if(checkForValidLanguage(outputLanguage)) {
this.outputLanguage=outputLanguage;
}
}
/**
* Methode: setOutputLanguage
* Diese Methode setzt das Datenfeld neu, falls es sich um eine Valide Sprache handelt.
* Sie informiert den Nutzer entsprechend.
* @param outputLanguage beinhaltet den Sprachkürzel, welche neu gewählt werden sollte.
*/
public void setOutputLanguage(String outputLanguage) {
if(checkForValidLanguage(outputLanguage)) {
this.outputLanguage=outputLanguage;
System.out.println(checkLanguage("Sprache auf Deutsch geändert","Language changed to english","Đã thay đổi ngôn ngữ sang tiếng Việt"));
}
}
/**
* Methode: checkForValidLanguage
* Diese Methode prüft ob es sich um eine Valide Sprache handelt.
* Falls nicht Valide wird der Nutzer zusätzlich über eine entsprechende Konsolenausgabe informiert.
* @param outputLanguage Enthält den Sprachkürzel, auf welche die Sprachausgabe gesetzt werden sollte.
* @return boolean True falls Sprachkürzel valide andernfalls false
*/
private boolean checkForValidLanguage(String outputLanguage) {
if(outputLanguage.equals(germanShortCut)||outputLanguage.equals(englishShortCut)||outputLanguage.equals(vietnameseShortCut)) {
return true;
}
System.out.println(checkLanguage(
"Diese Sprache ist nicht zulässig",
"This Language is not valid",
"Ngôn ngữ này không được phép"));
return false;
}
/**
* Methode: outputGameStartedText
* Diese Methode gibt den Text für den SpielStart aus.
*/
public void outputGameStartedText() {
System.out.println(checkLanguage(
"Spiel hat gestartet. Mögen der Bessere gewinnen!",
"Game has started. May the best win!",
"Trò chơi đã bắt đầu. Chúc cho chiến thắng tốt nhất!"
));
}
/**
* Methode: outputMove
* Diese Methode gibt die Anzahl Spielzüge aus, die im Spiel bereits gemacht worden sind und
* welcher Spieler den Zug macht
*/
public void outputMoveText(int move, int player) {
System.out.println(checkLanguage(
"Spiezug: " + move + ", Spieler " + player + " spielt.",
"Move: " + move + ", Player " + player + "plays",
"Di chuyển: " + move + ", Người " + player + " chơi"
));
}
/**
* Methode: outputWinnerText
* Diese Methode gibt den Gewinnertext über eine Konsolenausgabe aus.
* @param player beinhaltet den Integer, welcher den Spieler representiert.
*/
public void outputWinnerText(int player) {
System.out.println(checkLanguage(
"Spieler "+player+" hat gewonnen! Gut gespiel!",
"Player "+player+" won! Well played genius!",
"Người chơi "+player+" đã thắng. Làm tốt!"));
}
/**
* Methode: outputGameOverText
* Diese Methode gibt den Text aus, wenn das Spiel zu ende ist.
*/
public void outputGameOverText(){
System.out.println(checkLanguage(
"Das Spiel ist zu ende!",
"The Game has finished!",
"Trò chơi kết thúc rồi!"));
}
/**
* Methode: outputTieText
* Diese Methode gibt den Text aus, falls es Unentschieden ist.
*/
public void outputTieText(){
System.out.println(checkLanguage(
"Wir haben keinen Gewinner. Es ist unentschieden",
"We have no Winner. It's a tie",
"Chúng tôi không có người chiến thắng."));
}
/**
* Methode: outputNextPlayerText
* Diese Methode informiert den Nutzer über den Spieler, welcher am Zug ist.
* @param nextPlayer beinhaltet den Integer, welcher den Spieler representiert.
*/
public void outputNextPlayerText(int nextPlayer){
System.out.println(checkLanguage(
"Du bist dran "+ nextPlayer,
"It's your turn "+nextPlayer,
"Đến lượt bạn "+nextPlayer));
}
/**
* Methode: outputWrongFieldSelected
* Diese Methode informiert den Nutzer über eine Konsolenausgabe, falls ein falsches Feld ausgewählt wird.
*/
public void outputWrongFieldSelected(){
System.out.println(checkLanguage(
"Dieses Feld ist nicht zulässig",
"This Field is not valid",
"Trường này không được phép"));
}
/**
* Methode: checkLanguage
* Diese Methode prüft auf welchen Wert das Datenfeld gesetzt ist und gibt die entsprechende Aussage zurück.
* @param de Enthält die Deutschsprachige Aussage.
* @param en Enthält die Englischsprachige Aussage.
* @param vn Enthält die Vietnamesischsprachige Aussage.
* @return Gibt die Aussage zurück, welche dem Datenfeld outputLanguage entspricht.
*/
private String checkLanguage(String de,String en, String vn){
String result = "";
if(outputLanguage.equals(germanShortCut)){
result = de;
}else if(outputLanguage.equals(englishShortCut)){
result = en;
}else if(outputLanguage.equals(vietnameseShortCut)){
result = vn;
}
return result;
}
}