All pastes #198 Raw Edit

Anonymous

public text v1 · immutable
#198 ·published 2004-06-13 22:47 UTC
rendered paste body
#include <iostream>
#include <time.h>
using namespace std;

/*
InitBingoCard(): Fill the bingo array with 20 randomly selected values.  The function should ensure that each value can only appear in the array once. 
DisplayBingo(): Display the bingo array to the user.  If a given array location has not yet been correctly guessed, it will be displayed as an asterisk.  Correctly guessed values are displayed to the user at all times. 
UserGuess(): Asks the user to enter a value between 1 and 50.  If the user is entering a number already previously used, you should instruct the user to select a different number.  
CheckBingo(): This function is passed the user's guess as well as the bingo array and determines if the guessed value is in the array.  If it is, the function returns a 1, otherwise it returns a 0. 
DisplayStats(): This function will display to the user the number of guess attempts, the number which were successful and the number which were unsuccessful. 
*/

//////////////////
///DisplayStats///
//////////////////
void DisplayStats(double found, int gn)
{
	double rate = 0;

		//stats
	cout << "STATS:" << endl;
	cout << "------------" << endl;
	cout << found << " successful guesses" << endl;
	cout << (gn - found) << " unsuccessful guesses" << endl;
	
	if ((gn - found) == 0)
		rate = 100;
	else
		rate = (double)((found / gn) * 100);

	cout << rate << "% success rate" << endl;


		//pause
	system("pause");
}

//////////////////
///DisplayBingo///
//////////////////
int displaybingo(int *bingo, int *display)
{
	//clearsceen
	system("cls");

	int x = 0;

	for (x=0; x < 10; x++) //1-10
		if (display[x] == 1)
			if (bingo[x] < 10)
				cout << " 0" << bingo[x] << " ";
			else
			cout << " " << bingo[x] << " ";
		else
		cout << " ** ";
	
	cout << endl;
	
	for (x=10; x < 20; x++) //11-20
		if (display[x] == 1)
			cout << " " << bingo[x] << " ";
		else
		cout << " ** ";

	cout << endl;
	
	return 0;
}

////////////////
///CheckBingo///
////////////////
int checkbingo(int *guess, int *display, int *bingo, int& gn, double& found)
{
	int x = 0;
	int i = 0;
	
	for (i=0; i < gn; i++) // dupe check
		if (guess[gn] == guess[i])
		{
			cout << "number already entered." << endl;
			gn = gn - 1;
			i = 50;
			system("pause");
			return 0;
		}

	for (x=0; x < 20; x++) // bingo check
		if (guess[gn] == bingo[x])
		{
			cout << "you found a number!" << endl;
			display[x] = 1;
			found = found + 1;
			system("pause");
		}


	return 0;
}
///////////////
///UserGuess///
///////////////
int userguess(int *guess, int& gn)
{
	int i = 0;
	do
	{
		cout << "GN " << gn << endl;
		cout << "enter number you wish to guess" << endl;
	
		cin >> guess[gn];
	
		
		if (guess[gn] > 50 || guess[gn] < 1)//error check
		{
			cout << "number must be within 1 - 50 range" << endl;
			guess[gn] = 0;
		//	gn = gn - 1;
			system("pause");
			system("cls");

		}
	}while(guess[gn] > 50 || guess[gn] < 1);

	
	return 0;
}

///////////////////
///InitBingoCard///
///////////////////
int initbingocard(int *bingo)
{
	int x = 0;
	int i = 0;
	int j = 0;
	int temp = 0;

	for (x=0; x != 20; x++)
	{
		bingo[x]=rand()%50+1; //generates number between 1 - 50
		
		for (i=0; i < x; i++) //dupecheck
			if (bingo[x] == bingo[i])//if duplicate is found, current number is regenerated
			{
				x = x - 1;
				i = x;
			}
	}

	
	//bubble sort
	for (i=0; i<20; i++)
		for (j=i+1; j<20; j++)

		  if (bingo[i] > bingo[j])
		{
			temp = bingo[i];
			bingo[i] = bingo[j];
			bingo[j] = temp;
		} 

	return 0;
}

//////////
///Main///
//////////
int main()
{

	
	srand(time(0));//random seed generator
	int bingo[20];
	int guess[50];
	int display[20];
	int gn = 0;
	double found = 0;
	
	int temp = 0;
	
	//number generation + sorting
	initbingocard(bingo);
	
	
	do 
	{
	
		//displays correct guesses
		displaybingo(bingo, display);

		//user guess input + dupe checking
		userguess(guess, gn);
	
		//checks if guess is in bingo array
		checkbingo(guess, display, bingo, gn, found);
	
		gn = gn + 1; //guess counter
	
		//display
		DisplayStats(found, gn);


	}while(found!=20);
	
	cout << " YOU've WON THE GAME!" << endl;

	return 0;
}