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".

#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;
}

Edited 3 Years Ago by happygeek: fixed formatting

Is there something about the background text you didn't understand on the input box. or the Read Me: Read This Before Posting link at the top of the forum?

This article has been dead for over six months. Start a new discussion instead.