Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hangman;
- import java.util.Scanner;
- import java.io.*;
- class hangmanMethods {
- private static int count = 0;
- private Scanner scan;
- private final int totalGuesses = 6;
- private int guesses;
- private String word;
- private String guessed;
- private boolean done;
- private StringBuffer dashes;
- private char again;
- public hangmanMethods() {
- guessed = "";
- guesses = totalGuesses;
- done = false;
- chooseWord();
- }
- public void reset() {
- guessed = "";
- guesses = totalGuesses;
- done = false;
- chooseWord();
- }
- public void openScan() {
- count++;
- try {
- scan = new Scanner(new FileReader("hangWords.txt"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- public void chooseWord() {
- if (count == 0) {
- openScan();
- count++;
- }
- String temp = "null";
- if (scan.hasNext()) {
- temp = scan.next();
- word = temp;
- makeDashes(temp);
- } else {
- done = true;
- }
- }
- public String matchLetter(char letter) {
- for (int index = 0; index < word.length(); index++)
- if (word.charAt(index) == letter)
- dashes.setCharAt(index, letter);
- return ("good guess - ");
- }
- public String guess(String s) {
- if (s.equalsIgnoreCase(word)) {
- done = true;
- return "you win!";
- }
- else {
- guessed += s;
- if (guesses == 0) {
- done = true;reset();
- return ("you lose");
- }
- if (word.indexOf(s) < 0) {
- guesses--;
- return "bad guess";
- } else {
- return matchLetter(s.charAt(0));
- }
- }
- }
- public void makeDashes(String s) {
- StringBuffer dashes = new StringBuffer(s.length());
- for (int count = 0; count < s.length(); count++)
- dashes.append('-');
- this.dashes = dashes;
- }
- private void again(char c) {
- if (c == 'y') {
- done = false;
- reset();
- } else {
- done = true;
- System.exit(0);
- }
- }
- public static void main(String[] args) {
- boolean once = false;
- Scanner scan = new Scanner(System.in);
- hangmanMethods mine = new hangmanMethods();
- String guess;
- System.out.println("Your word is: " + mine.dashes + "\n"
- + "Your guesses: " + mine.guessed + "\n"
- + "Your number of guesses left: " + mine.guesses + "\n");
- guess = scan.next();
- System.out.println(mine.guess(guess));
- while (true) {
- if (!mine.done) {
- System.out
- .println("Your word is: " + mine.dashes + "\n"
- + "Your guesses: " + mine.guessed + "\n"
- + "Your number of guesses left: "
- + mine.guesses + "\n");
- guess = scan.next();
- System.out.println(mine.guess(guess));
- } else if (once) {
- mine.reset();
- mine.chooseWord();
- } else {
- System.out.println("play again (y/n)?: ");
- mine.again(scan.next().charAt(0));
- once = true;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement