Могу ли я использовать шаблон адаптера для добавления музыки в игру, которая использует только класс помимо построения GUI?

#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).