Alguém consegue fazer esse código salvar ou carrega em arquivos e fazer o boneco na forca e ao invés de passar palavra como entrada é para mostrar uma mensagem para o usuário e não pegar a primeira letra. Até faço Pix se eu passar na prova

package forcap2;

public class Aplicacao {
  
  private Aplicacao() {}
  
  public static void main(String[] args) {
    Dicionario dicionario = new DicionarioArray();
    Forca forca = new ForcaConsole(dicionario);
    forca.play();
  }
}
package forcap2;

public interface Dicionario {
  public String sorteio();
}
package forcap2;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Random;
import java.util.Scanner;

public class DicionarioArray implements Dicionario {
  String[] Palavras;
  
  public void DicionarioArray(String[] args) {
    String[] Leitor;
    File arq = new File("Pala.txt");
    
    try {
      Scanner entrada = new Scanner(arq);
      Leitor = entrada.nextLine().split(" ");
      Palavras = Leitor;
      
      for(int i = 0; i < Leitor.length; i++) {
        System.out.println(Leitor[i]);
      }
    } catch (FileNotFoundException ex) {
      System.out.println("A Palavra não exixte!");
    }
  }
  
  @Override
  public String sorteio() {
    String[] Leitor;
    File arq = new File("src\\forcap2\\Pala.txt");
    
    try {
      Scanner entrada = new Scanner(arq);
      Leitor = entrada.nextLine().split(" ");
      Palavras = Leitor;
      Random random = new Random();
      int index = random.nextInt(Palavras.length);
      
      return Palavras[index];
    }
    // System.out.println(entrada.nextLine());
    catch (FileNotFoundException ex) {
      System.out.println("A Palavra não exixte!");
    }   
    
    return null;
  }
}
package forcap2;

import java.util.ArrayList;
import java.util.List;

public abstract class Forca {
  
  private final int TempoMax = 10;
  private int Tentativas;
  private final Dicionario dicionario;
  private List<Character> correctLetters;
  private List<Character> incorrectLetters;
  private String PalavraSecreta;
  
  public Forca(Dicionario dicionario) {
    this.dicionario = dicionario;
  }
  
  public abstract void play();
  
  protected void initialize() {
    PalavraSecreta = dicionario.sorteio();
    correctLetters = new ArrayList<>();
    
    for(int i = 0; i < this.PalavraSecreta.length(); i++) {
      correctLetters.add('_');
    }
    
    incorrectLetters = new ArrayList<>();
    Tentativas = 1;
  }
  
  protected void check(char letter) {
    boolean Checarsecreta = false;
    Tentativas = Tentativas + 1;
    
    for (int i = 0; i < PalavraSecreta.length(); i++) {
      if (PalavraSecreta.charAt(i) == letter) {
        Checarsecreta = true;
        correctLetters.set(i, letter);
      }
    }
    
    if (!Checarsecreta) {
      incorrectLetters.add(letter);
    }
  }
  
  protected boolean LetraRepetida(char letter) {
    return correctLetters.contains(letter) || incorrectLetters.contains(letter);
  }
  
  protected boolean PerdeuJogo() {
    return Vitoria() || Derrota();
  }
  
  protected boolean Derrota() {
    return incorrectLetters.size() == TempoMax;
  }
  
  protected boolean Vitoria() {
    return !correctLetters.contains('_');
  }
  
  protected int getTentativas() {
    return Tentativas;
  }
  
  protected String getCorrectLetters() {
    StringBuilder out = new StringBuilder();
    
    for(int i = 0; i < correctLetters.size(); i++) {
      out.append(correctLetters.get(i));
      out.append(" ");
    }

    return out.toString();
  }
  
  protected String getIncorrectLetters() {
    int i = 0;
    StringBuilder out = new StringBuilder();
    
    for(; i < incorrectLetters.size(); i++) {
      out.append(incorrectLetters.get(i));
      out.append(" ");
    }

    for(; i < TempoMax; i++) {
      out.append("_");
      out.append(" ");
    }

    return out.toString();
  }
  
  protected String getPalavraSecreta() {
    StringBuilder out = new StringBuilder();
    
    for(int i = 0; i < PalavraSecreta.length(); i++) {
      out.append(PalavraSecreta.charAt(i));
      out.append(" ");
    }

    return out.toString();
  }
}
package forcap2;

import java.util.Scanner;

public class ForcaConsole extends Forca {
  
  public ForcaConsole(Dicionario dicionario) {
    super(dicionario);
  }
  
  @Override
  public void play() {
    try (Scanner scanner = new Scanner(System.in)) {
      boolean readInput = true;
      String input = null;
      initialize();
      
      while(!PerdeuJogo()) {
        System.out.println("Tentativa : " + getTentativas());
        System.out.println("Palavra   : " + getCorrectLetters());
        System.out.println("Forca     : " + getIncorrectLetters());
        
        readInput = true;
        input = null;
        
        while(readInput) {
          System.out.print("Letra     : ");
          input = scanner.nextLine().toUpperCase();
          
          if (
            (input == null) ||
            (input.length() == 0) ||
            (!Character.isAlphabetic(input.codePointAt(0)))
          ) {
            System.out.println("Erro      : forneça um letra válida!");
          } else if (LetraRepetida(input.charAt(0))) {
            System.out.println("Erro      : letra já fornecida!");
          } else {
            readInput = false;
          }
        }
        
        check(input.charAt(0));
        System.out.println();
      }
    }
    
    System.out.println("Tentativa : " + getTentativas());
    System.out.println("Palavra   : " + getPalavraSecreta());
    System.out.println("Forca     : " + getIncorrectLetters());
    
    if(Vitoria()) {
      System.out.println("Parabéns! Você descobriu!");
    } else {
      System.out.println("Desculpa, não foi dessa vez!");
    }
  }
}