import java.util.Scanner;
import java.io.File;
import java.util.ArrayList;

/**
 * Driver class for playing a text-based game of Hangman.
 *   @author Dave Reed
 *   @version 2/4/18
 */
public class HangmanText {
    public static void main(String[] args) throws java.io.FileNotFoundException {
        ArrayList<String> dictionary = new ArrayList<String>();
        Scanner dictfile = new Scanner(new File("dictionary.txt"));
        while (dictfile.hasNext()) {
            dictionary.add(dictfile.next().toLowerCase());
        }
        dictfile.close();
        
        Hangman hangman = new HonestHangman(dictionary); 
        //Hangman hangman = new DishonestHangman(dictionary); 

        Scanner input = new Scanner(System.in);

        char play = 'y';
        while (play == 'y') {
            System.out.println("I'm thinking of a " + 
                                hangman.getRedactedWord().length() + 
                                " letter word.");

            while (hangman.getRedactedWord().contains("-")) {
                System.out.println("\nWrong guesses so far: " + hangman.getNumWrong());
                System.out.println("Guessed so far: " + hangman.getGuesses());
                System.out.println("Current pattern: " + hangman.getRedactedWord());
                System.out.print("Your guess: ");

                char guess = input.next().toLowerCase().charAt(0);
                String result = hangman.makeGuess(guess);
                System.out.println(result);
            }

            System.out.println("\nYou gueesed " + hangman.getRedactedWord() +
                               " with " + hangman.getNumWrong() + " wrong guesses!");
            System.out.println("\nPlay again? (y/n) ");
            play = input.next().toLowerCase().charAt(0);
            
            hangman.reset();
        }
        System.out.println("\nThanks for playing!");
        input.close();
    }
}
