By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,276 Members | 1,452 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,276 IT Pros & Developers. It's quick & easy.

Help with hangman program

P: 3
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.print("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.print("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", "highlighter", "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_VALUE];
}

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

Can someone please help me?

Thanks!
Jul 20 '07 #1
Share this Question
Share on Google+
4 Replies


Expert 10K+
P: 11,448
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.
Jul 20 '07 #2

10K+
P: 13,264
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.
Jul 21 '07 #3

P: 3
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.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
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("dictionary.txt"));
int i = 0;
while (i < 200) {
dictionary[i++] = in.readLine();
}
in.close();
} catch (IOException e) {
System.err.println("Error: File failed to close");
}
}

public void play() {
System.out.print("Let's play HANGMAN!\n");
System.out.println("Instructions: 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.println("Word "+guesses);
System.out.println("Wrong letters "+wrongLetters);
System.out.println("Status ");
for (int i = 0; i < numberOfTrys; i++){
System.out.println(deadMan[i]);
}

}

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

private static void printArray(ArrayList array){
for (int i = 0; i < array.size(); i++){
System.out.println (array.get(i));
}
}


}




(second file )
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Main2
{
public static void main(String[] args) throws FileNotFoundException
{
int choice;
boolean done = false;
do
{
Scanner scan = new Scanner(System.in);
System.out.print("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.print("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
Jul 22 '07 #4

10K+
P: 13,264
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?
Jul 23 '07 #5

Post your reply

Sign in to post your reply or Sign up for a free account.