Help with hangman program

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • princessfrost
    New Member
    • Jul 2007
    • 3

    #1

    Help with hangman program

    Hi! I was wondering if someone could please help me with a hangman program that I have to do. I have some ideas, but really don't know what to do or where to start. My program needs to be: interactive with the user, menu based(like Menu: 1. Play hangman 2. Exit program), have a dictionaryand use a random method(create arrays of Strings or ListArray of Strings. e.g. : String [] dictionary =
    “apple”, “ball”, “cat”, “dog”, …..} minimum words requirement is 200.), more than one method, and one method has to return a value. The final status of the game-8 failed attempts is a loss, each wrong answer should print this:(00)-<=< (hangman), notify the user of the loss and print the correct word, if the user guesses correctly the message should be “ You guessed it right,” and display the Menu again.

    Here are my thoughts-
    I think I should do a do/while loop like this:

    int n;
    boolean done = false;
    do
    {
    Scanner scan = new Scanner(System. in);
    System.out.prin t("Enter your selection:\n 1. Play Hangman \n 2.Exit
    program");
    n = scan.nextInt();

    if(n == 1)
    {
    //hangman program goes here and dictionary (dictionary[rand()%200])
    }

    if( n==2)
    {
    done = true;
    }

    }
    while(! done);

    System.out.prin t("GAME OVER");

    Here are the 200 words I want to use:
    "boy", "girl", "mother", "father", "sister", "love", "sky", "wind", "water", "study", "ball",
    "cat", "dog", "puppy", "kitten", "apple", "pear", "lemon", "mango", "peach", "apricot", "chips", "steak", "fries", "cheese",
    "patatoe", "wedge", "heel", "hand", "foot", "arm", "leg", "nose", "face", "mouth", "tongue", "fingers", "toes", "line", "space",
    "phone", "cord", "core", "grass", "trees", "birds", "animals", "lazy", "funny", "king", "queen", "heart", "heat", "cold", "sun",
    "moon", "movie", "theater", "hairy", "big", "small", "large", "huge", "pig", "donkey", "cow", "chicken", "pizza", "bread", "stones",
    "sticks", "leaves", "letters", "alphabet", "soup", "hungry", "tired", "sleepy", "noisy", "caring", "friends", "month", "day", "light",
    "toothbrush ", "savings", "bank", "account", "teller", "paper", "pencil", "tea", "coffee", "spirit", "ghost", "can", "melon", "necklace",
    "screen", "baloon", "string", "calendar", "work", "toys", "kids", "school", "class", "campus", "freedom", "liberty", "happiness" ,
    "university ", "message", "marker", "crayon", "eraser", "music", "lyrics", "songs", "ballads", "shapes", "triangle", "circle", "rectangle" ,
    "square", "oval", "show", "video", "player", "team", "sport", "basketball ", "football", "soccer", "softball", "baseball", "tennis",
    "hockey", "lacrosse", "volleyball ", "circut", "blade", "scratch", "hit", "home", "house", "safe", "safety", "number", "count", "bear",
    "goose", "llama", "panda", "lion", "tiger", "cheetah", "computer", "crackers", "rice", "fan", "shoes", "book", "story", "princess",
    "prince", "jester", "court", "jury", "judge", "bench", "scandal", "name", "newspaper" , "press", "shove", "tear", "cry", "magic", "tricks",
    "cereal", "breakfast" , "lunch", "dinner", "main", "course", "fork", "spoon", "knife", "lamp", "desk", "bottle", "highlighte r", "cap",
    "medicine", "six", "seven", "flower", "rose", "petal"

    I know my hangman program should start something like this, but I don't know where to go from here:
    public Hangman()
    {
    misses = 0;
    wordIndex = 0;
    lettersUsed = new boolean[Character.MAX_V ALUE];
    }

    private void clear()
    {
    int k;
    for(k=0; k < Character.MAX_V ALUE; k++) {
    lettersUsed[k] = false;
    }

    Can someone please help me?

    Thanks!
  • JosAH
    Recognized Expert MVP
    • Mar 2007
    • 11453

    #2
    There's another user who hangs around here: Nomad; this user is also interested
    in implementing this Hangman game; send him a private message (PM, see
    the top right part of your browser window) and see if he's still interested.

    If both of you get stuck, feel free to come back here and ask away. First hint:
    have a look at the Pattern and Matcher classes.

    kind regards,

    Jos

    ps. and welcome to TSDN.

    Comment

    • r035198x
      MVP
      • Sep 2006
      • 13225

      #3
      And if you really want to make this one good (different categories e.t.c) , you might want to consider storing the words in a text file. Then the curent tip of the week might become relevant in some areas on this one as well.

      Comment

      • princessfrost
        New Member
        • Jul 2007
        • 3

        #4
        Ok, so this is what I have so far and I want to use the private boolean contain method to:
        1. letters guessed(like add a brand new letter thats wrong or right)
        2. the guessed letter (the wrong letter)
        3. if they guessed the letter before a statement that says "you guessed this already, please try again"
        4. if they enter an invaild answer(like a number)

        can someone please help me to do this?
        (first file)

        import java.io.Buffere dReader;
        import java.io.FileRea der;
        import java.io.IOExcep tion;
        import java.util.*;


        public class HangManGame7
        {

        static String [] dictionary = new String[200];



        static String word = "";
        static ArrayList guesses = new ArrayList();
        static ArrayList wrongLetters = new ArrayList();
        static int numberOfTrys = 0;
        static String[] deadMan = {"(","0","0",") ","-","<","="," <"};

        public HangManGame7(){
        try {
        BufferedReader in = new BufferedReader( new FileReader("dic tionary.txt"));
        int i = 0;
        while (i < 200) {
        dictionary[i++] = in.readLine();
        }
        in.close();
        } catch (IOException e) {
        System.err.prin tln("Error: File failed to close");
        }
        }

        public void play() {
        System.out.prin t("Let's play HANGMAN!\n");
        System.out.prin tln("Instructio ns: Enter a letter when asked. " +
        "Try to guess the word in less than 8 tries to stop from being hanged! Good luck!\n\n");
        word = dictionary[(int) (Math.random()% 200)] ;
        buildWord();
        System.out.prin tln("Word "+guesses);
        System.out.prin tln("Wrong letters "+wrongLetters) ;
        System.out.prin tln("Status ");
        for (int i = 0; i < numberOfTrys; i++){
        System.out.prin tln(deadMan[i]);
        }

        }

        private static void buildWord(){
        for (int i = 0 ; i < word.length(); i++){
        guesses.add("_ ");
        }
        }

        private static void printArray(Arra yList array){
        for (int i = 0; i < array.size(); i++){
        System.out.prin tln (array.get(i));
        }
        }


        }




        (second file )
        import java.io.FileNot FoundException;
        import java.util.Scann er;


        public class Main2
        {
        public static void main(String[] args) throws FileNotFoundExc eption
        {
        int choice;
        boolean done = false;
        do
        {
        Scanner scan = new Scanner(System. in);
        System.out.prin t("Enter your selection:\n 1. Play Hangman \n 2. Exit program\n\n");
        choice = scan.nextInt();

        if(choice == 1)
        {
        HangManGame7 hmg = new HangManGame7();
        hmg.play();

        }
        else if(choice == 2)
        {
        done = true;
        }

        }
        while(!done);
        System.out.prin t("GAME OVER");
        }
        }


        and the dictionary.txt file i have
        boy
        girl
        mother
        father
        sister
        love
        sky
        wind
        water
        study
        ball
        cat
        dog
        puppy
        kitten
        apple
        pear
        lemon
        mango
        peach
        apricot
        chips
        steak
        fries
        cheese
        potatoes
        wedge
        heel
        hand
        foot
        arm
        leg
        nose
        face
        mouth
        tongue
        fingers
        toes
        line
        space
        phone
        cord
        core
        grass
        trees
        birds
        animals
        lazy
        funny
        king
        queen
        heart
        heat
        cold
        sun
        moon
        movie
        theater
        hairy
        big
        small
        large
        huge
        pig
        donkey
        cow
        chicken
        pizza
        bread
        stones
        sticks
        leaves
        letters
        alphabet
        soup
        hungry
        tired
        sleepy
        noisy
        caring
        friends
        month
        day
        light
        toothbrush
        savings
        bank
        account
        teller
        paper
        pencil
        tea
        coffee
        spirit
        ghost
        can
        melon
        necklace
        screen
        balloon
        string
        calendar
        work
        toys
        kids
        school
        class
        campus
        freedom
        liberty
        happiness
        university
        message
        marker
        crayon
        eraser
        music
        lyrics
        songs
        ballads
        shapes
        triangle
        circle
        rectangle
        square
        oval
        show
        video
        player
        team
        sport
        basketball
        football
        soccer
        softball
        baseball
        tennis
        hockey
        lacrosse
        volleyball
        circuit
        blade
        scratch
        hit
        home
        house
        safe
        safety
        number
        count
        bear
        goose
        llama
        panda
        lion
        tiger
        cheetah
        computer
        crackers
        rice
        fan
        shoes
        book
        story
        princess
        prince
        jester
        court
        jury
        judge
        bench
        scandal
        name
        newspaper
        press
        shove
        tear
        cry
        magic
        tricks
        cereal
        breakfast
        lunch
        dinner
        main
        course
        fork
        spoon
        knife
        lamp
        desk
        bottle
        highlighter
        cap
        medicine
        six
        seven
        flower
        rose
        petal

        Comment

        • r035198x
          MVP
          • Sep 2006
          • 13225

          #5
          1.) Please don't post all your code and text all the time.
          2.) When you have to post code, let it be small snippets of the parts that you need help with.
          3.) Have you written down your specs, and design first?

          P.S Did you manage to talk to nomad?

          Comment

          Working...