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