hangman program stuck.. nid help.

K

kaka_hunter

#include <iostream>
#include <fstream>
using namespace std;
const int max_tries=7;
int earnings=0;
int wordnum;

void getword ()
{
ifstream fin;
string word;
//int mark;
int value;
cin >> value;
fin.open("guess.txt");
if (!fin.good())
{
cerr << "File not found\n";
// return 1;
}
int i =0;
while(!fin.eof())
{
i++;
fin >> word;
if(i==value)
break;
}
cout << word << endl;
//cout << "Mark is : " << mark << endl << endl;
//return 0;
}

int main()
{
cout << "*** HANGMAN Guess a Word Game *** \n";
int NUM;
cout << "Enter a number between 1 to 20: ";
cin >>NUM;
if (NUM<1)
cout << "Too small. Please enter a number between 1 to 20: ", cin >>
NUM;
if (NUM>20)
cout << "Too big. Please enter a number between 1 to 20: ", cin >>
NUM;

cout << "Current earnings: $" << earnings << "\n";
cout << "Max number of tries is " << max_tries << "\n";
getword ();
cout << "*********************************" << endl;

system ("pause");
return 0;
}
 
K

kaka_hunter

im new to C++ and i got an assignment which required me to do a
hangman game. Global variables are not allowed. program must be
modular, i.e create suitable functions. for functions, i was told to
use reference parameters instead of pointer parameters. i am to use
string class and not character array(e.g char x[20]).whenever
possible, you are to use keyword 'const' for function parameters and
prototype.

1. write a program (guess.cpp) that allows user to play the Hangman
game, as follows:

a) program 1st prompts user to enter a number between 1 - 20, reads a
word to guess from a file guess.txt, based on the number entered. the
file has the following format:

word1 PrizeAmount
word2 PrizeAmount
word3 PrizeAmount
:
:
:
word20 PrizeAmount

b) program then prompts the user to guess a letter. if the letter is
in the word, that letter will be displayed in the position(s) it
occurs. if it is incorrect, the incorrect letter is added to the
string of incorrect guesses and the number of attempts is incremented
by 1.

c) if user guesses a letter which he/she already guessed before,
program should display an error message and it should not increase the
number of attempts.

d) the user wins if he/she guesses the word with no more than 7
incorrect guesses. if user wins, the prize amount is added to his
earnings (initially set to $0). if user loses, the prize amount is
deducted from his earnings and program wil display the word to guess.

e) program will quit if user's earnings is less than $0 or he chooses
to quit the game after each round.

f) as an illustration, suppose the file guess.txt has the following
content:
life 50
home 100
house 150

if user enters a number 3, the word to guess will be "house".
 
V

Victor Bazarov

kaka_hunter said:
im new to C++ and i got an assignment which required me to do a
hangman game. Global variables are not allowed. program must be
modular, i.e create suitable functions. for functions, i was told to
use reference parameters instead of pointer parameters. i am to use
string class and not character array(e.g char x[20]).whenever
possible, you are to use keyword 'const' for function parameters and
prototype.

[..]

FAQ 5.2.

V
 
O

osmium

#include <iostream>
#include <fstream>
using namespace std;
const int max_tries=7;
int earnings=0;
int wordnum;

void getword ()

Focus on that signature. getword should return something, should it not?
Also, it has to get a *specific* something.
How about something along these lines?

// returns the chosen target word
string getword(int target_ix, int& prize_amt)

There is little point in getting something to work if it isn't going to be
useful when it does work, is there?

Note that you have to read two items per line, not one.

The signature given above may need tweaking to meet the boilerplate in the
spec you have been given, but I think it is close to what you will want.
(Lightly sprinkle some "const" and '&' to satisfy the instructor.)

<snip>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top