#java
#java
Вопрос:
Могу ли я использовать шаблон адаптера для добавления музыки в игру, которая использует только класс помимо построения GUI? Мне сказали, что я не могу добавить шаблон адаптера в игру, в которой есть только один класс, поэтому я решил спросить более опытных людей. Я разместил приведенный ниже код, если это необходимо.
public class ConsoleVersion {
private Scanner in = new Scanner(System.in);
public Random rGen = new Random();
public static final String FILE="input/dictionar.txt";
public void run() {
do {
// crearea unei matrici pentru a stoca un cuvant aleatoriu, astfel incat sa nu generam
// mai mult de un cuvant
String phrase = getword();
char[] randPhrase = phrase.toCharArray();
// crearea matricii guesses cu aceeasi dimensiune si afisarea cuvantului
char[] guesses = new char[randPhrase.length];
popGuesses(guesses);
String counter = "";
System.out.println(randPhrase);
while(true) {
if(Arrays.equals(guesses, randPhrase)){
System.out.println("Bravo, ai castigat!");
break;
}
// Afisarea matricei guesses cu "-"
display(guesses);
System.out.println();
String guess = getString("Ghiceste");
if(phrase.contains(guess))
{
processor(randPhrase, guesses, guess);
}
else
{
System.out.println("Ops " guess " nu face parte din cuvant");
}
// trecem matricea randPhrase, matricea guesses si user input pentru a fii
// procesata si afisata
counter = guess ",";
System.out.println(counter);
}
} while (playAgain());//sfarsit bucla while
}
public void popGuesses(char[] guesses) {
// intruducerea in matricea guess "-"
for (int i = 0; i < guesses.length; i ) {
guesses[i] = '_';
}
}
// Trecerea matricii randPhrase, matricii guesses array si guess string pentru comparatie
public void processor(char[] randPhrase, char[] guesses, String guess) {
for (int i = 0; i < randPhrase.length; i ) {
if (guess.charAt(0) == randPhrase[i]) {
guesses[i] = guess.charAt(0);
}
}
}
// afisarea matricei guesses
public static void display(char[] guesses) {
for (int i = 0; i < guesses.length; i ) {
System.out.print(guesses[i] " ");
}
}
// generați un cuvânt aleatoriu și reveniți prin matricea char
public String getword() {
String[] words = textFile();
int n = words.length;
int r = rGen.nextInt(n);
String word = words[r];
return word;
}
// Intreba utilizatorul daca joaca sau nu
private boolean playAgain() {
System.out.print("Mai incerci?? ");
String answer = in.nextLine().toLowerCase();
if (answer.equals("d") || answer.equals("da")) {
return true;
}
return false;
}
//citeste din fisier, stocare in matricea string
public String[] textFile() {
// crearea bufferedReader
BufferedReader reader = null;
// crearea unei matrice de liste și stocarea valorilor din fișierul text
List<String> wordList = new ArrayList<String>();
try {
reader = new BufferedReader(new FileReader(FILE));
String s = null;
while ((s = reader.readLine()) != null) {
wordList.add(s);
}
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(-1);
} finally {
try {
// inchiderea fisierelor
reader.close();
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(-1);
}
}
// convertirea din arraylist in matrice si revenire
return wordList.toArray(new String[wordList.size()]);
}
// Metoda returneaza user input
public String getString(String question) {
System.out.print(question);
return in.nextLine();
}
public static void main(String[] args) {
ConsoleVersion source = new ConsoleVersion();
source.run();
}
}
Комментарии:
1. Вы хотите добавить музыку в консольную игру?
2. Объектно-ориентированный язык программирования или ООПЛ позволяет это сделать. Это зависит только от того, как вы хотите это сделать. Например, в рамках метода вы можете открыть или создать любой объект GUI (SWING или JFX), если вы просто следуете правилам (и соглашениям: например, JFXPanel для смешивания JFX с SWING).