package hangman;
import java.util.Scanner;
import java.io.File;
import java.util.InputMismatchException;
import java.io.FileNotFoundException;
import java.util.Random;
public class Hangman {
private char letter;
private int amountOfGuesses = 6;
private String word
= random
(); private String guesses
= numberOfLetters
();
File inFile
= new File("dictionary.txt"); Scanner input = new Scanner(inFile);
int i =0;
String line
= input.
nextLine(); while (input.hasNextLine()){
choices[i]=line;
}
input.close();
}
public void Game() {
System.
out.
println("Let's play Hangman!"); System.
out.
println("This is your word: " + guesses
); System.
out.
println("There are " + amountOfGuesses
+ " lives left."); while (amountOfGuesses > 0) {
Scanner user
= new Scanner
(System.
in); System.
out.
println("Please enter a letter: "); String idea
= user.
nextLine(); letterCheck();
if (guesses.equals(word)) {
System.
out.
println("You guessed the word: " + guesses
); System.
out.
println("You win!!"); break;
}
System.
out.
println("The word looks like this:" + guesses
); System.
out.
println("You have " + amountOfGuesses
+ "left."); if (amountOfGuesses == 0) {
System.
out.
println("The word was: " + word
); System.
out.
println("You lose! Game over!"); }
}
}
private String numberOfLetters
() { for (int i = 0; i < word.length(); i++) {
result = result + "-";
}
return result;
}
int index = game.nextInt(choices.length);
String guess
= choices
[index
]; return guess;
}
private void letterCheck() {
if (word.indexOf(letter) == -1) {
System.
out.
println("There are no " + letter
+ "'s in the word"); amountOfGuesses--;
}
if (word.indexOf(letter) != -1) {
System.
out.
println("The guess is correct."); }
for (int i = 0; i < word.length(); i++) {
if (letter == word.charAt(i)) {
if (i > 0) {
guesses = guesses.substring(0, i) + letter + guesses.substring(i + 1);
}
if (i == 0) {
guesses = letter + guesses.substring(1);
}
}
}
}
}
cGFja2FnZSBoYW5nbWFuOwoKaW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwppbXBvcnQgamF2YS5pby5GaWxlOwppbXBvcnQgamF2YS51dGlsLklucHV0TWlzbWF0Y2hFeGNlcHRpb247CmltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKaW1wb3J0IGphdmEudXRpbC5SYW5kb207CgpwdWJsaWMgY2xhc3MgSGFuZ21hbiB7CgogICAgcHJpdmF0ZSBjaGFyIGxldHRlcjsKICAgIHByaXZhdGUgU3RyaW5nW10gY2hvaWNlczsKICAgIHByaXZhdGUgaW50IGFtb3VudE9mR3Vlc3NlcyA9IDY7CiAgICBwcml2YXRlIFN0cmluZyB3b3JkID0gcmFuZG9tKCk7CiAgICBwcml2YXRlIFN0cmluZyBndWVzc2VzID0gbnVtYmVyT2ZMZXR0ZXJzKCk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7CgogICAgICAgIEZpbGUgaW5GaWxlID0gbmV3IEZpbGUoImRpY3Rpb25hcnkudHh0Iik7CiAgICAgICAgU2Nhbm5lciBpbnB1dCA9IG5ldyBTY2FubmVyKGluRmlsZSk7CiAgICAgICAgU3RyaW5nW10gY2hvaWNlcyA9IG5ldyBTdHJpbmdbNTAwXTsKICAgICAgICBpbnQgaSA9MDsKICAgICAgICBTdHJpbmcgbGluZSA9IGlucHV0Lm5leHRMaW5lKCk7CiAgICAgICAgd2hpbGUgKGlucHV0Lmhhc05leHRMaW5lKCkpewogICAgICAgICAgIGNob2ljZXNbaV09bGluZTsKICAgICAgICB9CiAgICAgICAgaW5wdXQuY2xvc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBHYW1lKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGV0J3MgcGxheSBIYW5nbWFuISIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyBpcyB5b3VyIHdvcmQ6ICIgKyBndWVzc2VzKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSAiICsgYW1vdW50T2ZHdWVzc2VzICsgIiBsaXZlcyBsZWZ0LiIpOwogICAgICAgIHdoaWxlIChhbW91bnRPZkd1ZXNzZXMgPiAwKSB7CiAgICAgICAgICAgIFNjYW5uZXIgdXNlciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUGxlYXNlIGVudGVyIGEgbGV0dGVyOiAiKTsKICAgICAgICAgICAgU3RyaW5nIGlkZWEgPSB1c2VyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGxldHRlckNoZWNrKCk7CgogICAgICAgICAgICBpZiAoZ3Vlc3Nlcy5lcXVhbHMod29yZCkpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWW91IGd1ZXNzZWQgdGhlIHdvcmQ6ICIgKyBndWVzc2VzKTsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWW91IHdpbiEhIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSB3b3JkIGxvb2tzIGxpa2UgdGhpczoiICsgZ3Vlc3Nlcyk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWW91IGhhdmUgIiArIGFtb3VudE9mR3Vlc3NlcyArICJsZWZ0LiIpOwogICAgICAgICAgICBpZiAoYW1vdW50T2ZHdWVzc2VzID09IDApIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIHdvcmQgd2FzOiAiICsgd29yZCk7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIllvdSBsb3NlISBHYW1lIG92ZXIhIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBTdHJpbmcgbnVtYmVyT2ZMZXR0ZXJzKCkgewogICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdvcmQubGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyAiLSI7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CgogICAgcHJpdmF0ZSBTdHJpbmcgcmFuZG9tKCkgewogICAgICAgIFJhbmRvbSBnYW1lID0gbmV3IFJhbmRvbSgpOwogICAgICAgIGludCBpbmRleCA9IGdhbWUubmV4dEludChjaG9pY2VzLmxlbmd0aCk7CiAgICAgICAgU3RyaW5nIGd1ZXNzID0gY2hvaWNlc1tpbmRleF07CiAgICAgICAgcmV0dXJuIGd1ZXNzOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBsZXR0ZXJDaGVjaygpIHsKCiAgICAgICAgaWYgKHdvcmQuaW5kZXhPZihsZXR0ZXIpID09IC0xKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlcmUgYXJlIG5vICIgKyBsZXR0ZXIgKyAiJ3MgaW4gdGhlIHdvcmQiKTsKICAgICAgICAgICAgYW1vdW50T2ZHdWVzc2VzLS07CiAgICAgICAgfQogICAgICAgIGlmICh3b3JkLmluZGV4T2YobGV0dGVyKSAhPSAtMSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBndWVzcyBpcyBjb3JyZWN0LiIpOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdvcmQubGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICBpZiAobGV0dGVyID09IHdvcmQuY2hhckF0KGkpKSB7CiAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKICAgICAgICAgICAgICAgICAgICBndWVzc2VzID0gZ3Vlc3Nlcy5zdWJzdHJpbmcoMCwgaSkgKyBsZXR0ZXIgKyBndWVzc2VzLnN1YnN0cmluZyhpICsgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgZ3Vlc3NlcyA9IGxldHRlciArIGd1ZXNzZXMuc3Vic3RyaW5nKDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH0KfQo=