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

147 lines
5.8 KiB
Java

/**
* Diese Klasse instanziert ein Objekt des Types Sprache. Dieses Objekt erlaubt
* Sprachausgaben in 3 verschiedenen Sprachen.
* Die Sprachausgaben helfen dem Nutzer bei der Orientierung und geben den Spielfortschritt an.
*/
public class Language {
//Enthält gewählte Sprache
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: outputSeparator
* Diese Methode gibt die Anzahl Züge aus, die im Spiel bereits gemacht worden sind.
*/
public void outputSeparator() {
System.out.println("____________\n");
}
/**
* 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;
}
}