vendredi 11 novembre 2016

Java Program - Guess secret word(3 letters)

I'm trying to create a program which uses a random class and creates a 3 letter code that ranges from A to E. An example code would be "CDA" or "CDE". The user has 6 tries and if he gets the code correct within 6 guesses, he wins. I created 3 classes, 1 to create a single code, another is to break the code, and one is a main method that returns methods from code solver.

First question is: How do I compare the user input to Random letter 1,2,3 in the getGuess() method?

Second question is: How do I loop the user so that if he enters a letter from D to Z, he has to enter the guess again in the same guess #? For example in guess #2, he enters 'bdK', the user has to enter the guess again in guess #2.

CodeLetter class:

import java.util.Random;
import java.util.Scanner;

public class CodeLetter {

    Random rand = new Random();
    private Scanner input = new Scanner(System.in);
    private char letterValue;

    public CodeLetter() { // Constructor
        letterValue = (char) (rand.nextInt(5) + 'A');
        System.out.print(letterValue);
    }

    public void display() {
        System.out.print(letterValue);
    }

}

CodeSolver Class

import java.util.Scanner;
import java.util.Random;

public class CodeSolver {

    private CodeLetter letter1; // First code letter
    private CodeLetter letter2; // Second code letter
    private CodeLetter letter3; // Third code letter
    private boolean done; // Is the game done?
    private Scanner input; // Get input from the user.
    private String guess; // User's letter input.

    public CodeSolver() { // Default Constructor.

        System.out.println("Welcome My Fellow User to CodeSolver.");
        System.out.println("6 tries to find the secret letter code");     
        System.out.println("The letters range from A to E.");
        System.out.println("Good luck.");
        System.out.println("The code may have repeat letter. \n");
        System.out.print("SECRET CODE: ");
        letter1 = new CodeLetter();
        letter2 = new CodeLetter();
        letter3 = new CodeLetter();
        System.out.println();
    }

    public boolean done() {
        System.out.println("You Lost the Game.");
        return done;

    }

    public void getGuess() {
        Scanner input = new Scanner(System.in);
        int guessNum;

        for (guessNum = 1; guessNum <= 6; guessNum++) {
            System.out.print("Enter guess #" + guessNum + " ");
            guess = input.nextLine();
            checkGuess();
            if (guess.equals("quit")) {
                done();
                break;
            }
        }
    }

    public void checkGuess() {
        System.out.println("Return this method to getGuess.");

    }

    public void display() {
        System.out.print("The code was: ");
        letter1.display();
        letter2.display();
        letter3.display();
    }
}




Aucun commentaire:

Enregistrer un commentaire