samedi 13 juin 2020

Choosing a Random word from a text file

I'm trying to develop a hangman as an assignment, and is unable to get one random word from a Text file(which has various words and each word is separated with a space). I've written a code to get a random word, but unable to pick one words and replace it, with the sample string (String w = "this";) i have in the "Function()".

 public void randomWord() {

        try {
            BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\Admin\\Documents\\NetBeansProjects\\Main\\words.txt"));
            String line = reader.readLine();
            List<String> words = new ArrayList<String>();
            while (line != null) {
                String[] wordline = line.split(" ");
                for (String word : wordline) {
                    words.add(word);
                }
                Random rand = new Random();
                String randomWord1 = words.get(rand.nextInt(words.size()));
                System.out.println("rand word : " + randomWord1);

            }
            reader.close();
        } catch (Exception e) {

        }

    }


public void function() {

        int numGuesses = 10;
        String w = "this";
        String[] word = w.split("");
        ArrayList< String> wList = new ArrayList<>(Arrays.asList(word));
        ArrayList< String> wAnswer = new ArrayList< String>(wList.size());
        for (int i = 0; i < wList.size(); i++) {
            wAnswer.add("_ ");
        }
        int left = wList.size();
        Scanner scanner = new Scanner(System.in);
        boolean notDone = true;
        ArrayList< String> lettersGuessed = new ArrayList< String>();

        while (notDone) {
            System.out.println();
            String sOut = "";

            List< String> lettersLeft = getRemainingLetters(lettersGuessed);
            for (String s : lettersLeft) {
                sOut += s + " ";
            }
            System.out.println("Letters Left: " + sOut);

            sOut = "";
            for (int i = 0; i < wList.size(); i++) {
                sOut += wAnswer.get(i);
            }
            System.out.println(sOut + " Guesses left:" + numGuesses);
            System.out.print("Enter a letter(* exit): ");
            String sIn = scanner.next();
            numGuesses--;
            if (sIn.equals("*")) {
                break;
            }
            lettersGuessed.add(sIn);
            for (int i = 0; i < wList.size(); i++) {
                if (sIn.equals(wList.get(i))) {
                    wAnswer.set(i, sIn);
                    left--;
                }
            }
            if (left == 0) {
                System.out.println("Congradulations you guessed it!");
                break;
            }
            if (numGuesses == 0) {
                System.out.println("You failed...:(");
                break;
            }

        }

    }

    public static void main(String[] args) {
        Main ma = new Main();

        // loadWords();
        // ma.function();
        ma.randomWord();

    }

}



Aucun commentaire:

Enregistrer un commentaire