import java.util.Scanner;


//read from file using exception handling

public class ObjectLab01
{
	public static void PrintResult(boolean result)
	{
		System.out.println("Success? " + (result? true:false) );
	}

	public static void main(String[] args) 
	{
		
		final String strWord = Initializer.InitializeFromFile();
        String strInput = "";
        int Attempt = 0;
        System.out.println("New Game");
        Scanner scan = new Scanner(System.in);
        final int iTries = 5;
        final int wordLength = 5;
        Validator eval = new Validator();
        char [] cArray = new char[5];
        int iMissing = 0;

        for (Attempt = 0; Attempt < iTries; Attempt++)
        {
            System.out.println("enter a string with 5 characters");
        
            strInput = scan.nextLine(); 
            if (eval.CheckLength(strInput, wordLength))
            {
            	System.out.println("length has been checked and approved");
            }
            else
            {
            	System.out.println("length has been checked and disapproved");
            	continue;
            	
            }

            if (strInput.equals(strWord) )
            {
                break;
            }
            else
            {
            	System.out.println("Nice try for Attempt Number: " + Attempt );
            }

           
            for (int i = 0; i < 5; i++)
            {
            	if (strInput.toCharArray()[i] == strWord.toCharArray()[i])
            	{
            		cArray[i] = strWord.toCharArray()[i];
            	}
            	else
            	{
            		cArray[i] = '?';
            		iMissing = i;
            	}
            	
            }

            System.out.println("Your attempt is now something like " + String.valueOf(cArray) );
            
            System.out.printf("You missed this character: \"%c\", at position %d\n", strWord.charAt(iMissing), ++iMissing );  
            
        }
        PrintResult (strInput.equals(strWord));        
       
        eval.GetLevel(Attempt);
        
        scan.close();
        
	}

}
