add files
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Random;
|
||||
import java.util.Scanner;
|
||||
import java.util.Set;
|
||||
|
||||
class Game {
|
||||
private String secretWord;
|
||||
private double remainingAttempts;
|
||||
private User currentUser;
|
||||
private Set<Character> guess = new HashSet<>();
|
||||
private Scanner input = new Scanner(System.in);
|
||||
private char[] secretwordarray;
|
||||
|
||||
public Game() {
|
||||
setSecretWord();
|
||||
setRemainingAttempts();
|
||||
setCurrentUser();
|
||||
}
|
||||
|
||||
public void setSecretWord() {
|
||||
|
||||
WordBank a = WordBank.getObject();
|
||||
|
||||
secretWord = a.getRandomWord();
|
||||
|
||||
}
|
||||
|
||||
public void getSecretWord() {
|
||||
System.out.println(secretWord);
|
||||
|
||||
}
|
||||
|
||||
public void setRemainingAttempts() {
|
||||
if (secretWord.equals("there is no word in Word Bank ")) {
|
||||
return;
|
||||
}
|
||||
|
||||
remainingAttempts = 5.0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void getRemainingAttempts() {
|
||||
System.out.println(remainingAttempts);
|
||||
}
|
||||
|
||||
public void setCurrentUser() {
|
||||
if (secretWord.equals("there is no word in Word Bank ")) {
|
||||
return;
|
||||
}
|
||||
|
||||
AuthService a = AuthService.getObject();
|
||||
currentUser = a.getlastlogin();
|
||||
}
|
||||
|
||||
public User getCurrentUser() {
|
||||
return (currentUser);
|
||||
}
|
||||
|
||||
public void startGame(User user) {
|
||||
if (secretWord.equals("there is no word in Word Bank ")) {
|
||||
return;
|
||||
}
|
||||
|
||||
secretwordarray = secretWord.toCharArray();
|
||||
|
||||
char[] word = secretWord.toCharArray();
|
||||
|
||||
int j = 0;
|
||||
|
||||
for (int i = 0; i < secretWord.length(); i++) {
|
||||
j += 1;
|
||||
secretwordarray[i] = '_';
|
||||
}
|
||||
displayWordState();
|
||||
System.out.println("\n This word has " + j + " letters.");
|
||||
int z = 0;
|
||||
while (true) {
|
||||
System.out.println("\nGuess a letter: ");
|
||||
if (z < 1) {
|
||||
System.out.println("\nPRESS 0 AND GET A HINT (-3 POINTS)");
|
||||
|
||||
}
|
||||
String letter = input.nextLine();
|
||||
if (letter.equals("0") && z < 1) {
|
||||
z += 1;
|
||||
if (currentUser.useHint()) {
|
||||
Leaderboard.getObject().updateScore(currentUser, -3);
|
||||
int t = 0;
|
||||
|
||||
for (int i = 0; i < word.length; i++) {
|
||||
if (secretwordarray[i] != word[i]) {
|
||||
t += 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
char[] hint = new char[t];
|
||||
for (int i = 0; i < word.length; i++) {
|
||||
if (secretwordarray[i] != word[i]) {
|
||||
hint[i] = word[i];
|
||||
}
|
||||
|
||||
}
|
||||
Random r = new Random();
|
||||
int random = r.nextInt(hint.length);
|
||||
|
||||
for (int k = 0; k < word.length; k++) {
|
||||
if (word[k] == hint[random]) {
|
||||
secretwordarray[k] = hint[random];
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
displayWordState();
|
||||
int h = 0;
|
||||
for (char w : secretwordarray) {
|
||||
if (w == '_') {
|
||||
h += 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (h == 0) {
|
||||
System.out.println("game over");
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
|
||||
}
|
||||
continue;
|
||||
}
|
||||
String a = guessLetter(letter);
|
||||
if (a.equals("Correct guess!")) {
|
||||
displayWordState();
|
||||
if (Arrays.equals(secretwordarray, word)) {
|
||||
System.out.println("You Won");
|
||||
Leaderboard.getObject().updateScore(currentUser, secretWord.length());
|
||||
return;
|
||||
|
||||
}
|
||||
continue;
|
||||
|
||||
} else if (a.equals("wrong choice!")) {
|
||||
if (secretWord.length() <= 8.0) {
|
||||
remainingAttempts -= 1.0;
|
||||
if (remainingAttempts == 4.0) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ");
|
||||
System.out.println(" ______\\ \\ | | ");
|
||||
System.out.println("|______/ / | |__");
|
||||
System.out.println(" /_/ |_____");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 3.0) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___");
|
||||
System.out.println(" ______\\ \\ | | / _ \\");
|
||||
System.out.println("|______/ / | |__| (_) \\ ");
|
||||
System.out.println(" /_/ |_____\\___/");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 2.0) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ ");
|
||||
System.out.println(" /_/ |_____\\___/|____/");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 1.0) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ___ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|/ _ \\");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ __/");
|
||||
System.out.println(" /_/ |_____\\___/|____/\\___|");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 0.0) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ___ _ __ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|/ _ \\ |__|");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ __/ | ");
|
||||
System.out.println(" /_/ |_____" + "\\___/|____/" + "\\___|_| ");
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
} else if (secretWord.length() > 8.0) {
|
||||
remainingAttempts -= 0.5;
|
||||
if (remainingAttempts == 4.0 || remainingAttempts == 4.5) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ");
|
||||
System.out.println(" ______\\ \\ | | ");
|
||||
System.out.println("|______/ / | |__");
|
||||
System.out.println(" /_/ |_____");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 3.0 || remainingAttempts == 3.5) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___");
|
||||
System.out.println(" ______\\ \\ | | / _ \\");
|
||||
System.out.println("|______/ / | |__| (_) \\ ");
|
||||
System.out.println(" /_/ |_____\\___/");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 2.0 || remainingAttempts == 2.5) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ ");
|
||||
System.out.println(" /_/ |_____\\___/|____/");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 1.0 || remainingAttempts == 1.5) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ___ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|/ _ \\");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ __/");
|
||||
System.out.println(" /_/ |_____\\___/|____/\\___|");
|
||||
}
|
||||
|
||||
else if (remainingAttempts == 0.0 || remainingAttempts == 0.5) {
|
||||
System.out.println(" __ _ ");
|
||||
System.out.println(" \\ \\ | | ___ ____ ___ _ __ ");
|
||||
System.out.println(" ______\\ \\ | | / _ \\/ __|/ _ \\ |__|");
|
||||
System.out.println("|______/ / | |__| (_) \\__ \\ __/ | ");
|
||||
System.out.println(" /_/ |_____\\___/|____/\\___|_| ");
|
||||
return;
|
||||
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String guessLetter(String letter) {
|
||||
|
||||
char[] word = secretWord.toCharArray();
|
||||
|
||||
char lett = letter.charAt(0);
|
||||
if (guess.contains(lett)) {
|
||||
System.out.println("You have already chosen this letter. ");
|
||||
System.out.println("\n " + guess);
|
||||
return ("");
|
||||
|
||||
}
|
||||
|
||||
guess.add(lett);
|
||||
int o = 0;
|
||||
for (int k = 0; k < word.length; k++) {
|
||||
if (word[k] == lett) {
|
||||
secretwordarray[k] = lett;
|
||||
o += 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (o > 0) {
|
||||
System.out.println("Correct guess!");
|
||||
|
||||
return ("Correct guess!");
|
||||
} else {
|
||||
System.out.println("wrong choice!");
|
||||
return ("wrong choice!");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void displayWordState() {
|
||||
String wordState = "";
|
||||
for (int i = 0; i < secretwordarray.length; i++) {
|
||||
wordState += secretwordarray[i] + " ";
|
||||
}
|
||||
System.out.println(wordState);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user