/** * * 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 String germanShortCut = "de"; private String englishShortCut = "en"; private 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öge 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; } }