سؤال

I was wondering if someone could look over my code for this "Random Guess my Number Game".

Here is all of the code:

#include <iostream> 
#include <conio.h>
#include <stdlib.h> 
#include <time.h>
using namespace std;

int PlayerNumber, x;
bool win = false;
long  foo;
char milliongame;
int main(){
srand (time(NULL));
cout << "Guess your computers number." << endl << endl;

for (int level = 1, foo = 10; level<=10; level++, foo = foo*2){
switch ( foo ){
case 20:
    foo = 25;
    break;
case 200:
    foo = 250;
    break;
case 2000:
    foo = 2500;
    break;
}

win = false;
x = (rand()%foo + 1);
refresh:    

cout << "level " << level << endl;

cout <<"Computers number is between 1 and "<< foo << endl;
cout << "Your number: "; cin >> PlayerNumber;

if (!cin || PlayerNumber > foo || PlayerNumber <= 0){
    cout << "That's not a number between 1 and " << foo << " !" << endl;
    PlayerNumber = 0;
    system("pause");

    system("cls");
    goto refresh;
    }

if (x > PlayerNumber)
    cout << "Your number was lower than the computers." << endl;

if (x < PlayerNumber)
    cout << "Your number was higher than the computers" << endl;

if (x == PlayerNumber ){
        cout << "You Won! \n\nThe computer's number was "<< x << endl; win = true;    
    }


cout << endl; system("pause");
system("cls");

if (win != true){
    goto refresh;
    }
  }

cout << "You Beat the Game! \n\nDo You Dare Play for a Million? \n[y/n]: "; cin >>         milliongame;

if (milliongame !=  'y')
return 0;

mill:

    cout << "million level!" << endl;

    x = (rand()%1000000000);

cout <<"Computers number is between 1 and 1,000,000,000" << endl;
cout << "Your number: "; cin >> PlayerNumber;

if (!cin || PlayerNumber > 1000000000 || PlayerNumber <= 0){
    cout << "That's not a number between 1 and 1,000,000,000!" << endl;
    PlayerNumber = 0;
    system("pause");

    system("cls");
    goto mill;
}

if (x > PlayerNumber)
    cout << "Your number was lower than the computers." << endl;

if (x < PlayerNumber)
    cout << "Your number was higher than the computers" << endl;

if (x == PlayerNumber )
    {cout << "You Won! \n\nThe computer's number was "<< x << endl; win =                      true;
}


}

Anyone who could give me any tips would be really appreciated.

The idea is that the player geuss's a number and the programme will tell them whether it is higher or lower than the computers number.

Also note that it is a Console Application compiled with Visual C++ 2012

Thanks!

هل كانت مفيدة؟

المحلول

This piece of code:

if (milliongame ==  'y')
{goto mill;}
else
return 0;

mill:

    cout << "million level!" << endl;

you can replace with simpler:

if (milliongame !=  'y')
    return 0;

cout << "million level!" << endl;

This:

if (foo == 20)
    foo = 25;
if (foo == 200)
    foo = 250;
if (foo == 2000)
    foo = 2500;

with this:

switch ( foo )
{
    case 20:
        foo = 25;
        break;
    case 200:
        foo = 250;
        break;
    case 2000:
        foo = 2500;
        break;
}

And this:

if (x > PlayerNumber)
    cout << "Your number was lower than the computers." << endl;

if (x < PlayerNumber)
    cout << "Your number was higher than the computers" << endl;

if (x == PlayerNumber )
    {cout << "You Won! \n\nThe computer's number was "<< x << endl; win=true;}

with:

if (x > PlayerNumber)
    cout << "Your number was lower than the computers." << endl;
else if (x < PlayerNumber)
    cout << "Your number was higher than the computers" << endl;
else
{
    cout << "You Won! \n\nThe computer's number was "<< x << endl; 
    win=true;
}

Moreover, the last piece of code appears twice in you program, so you may create a function

void result(int PlayerNumber, int x)
{
    if (x > PlayerNumber)
            cout << "Your number was lower than the computers." << endl;
    else if (x < PlayerNumber)
            cout << "Your number was higher than the computers" << endl;
    else
    {
        cout << "You Won! \n\nThe computer's number was "<< x << endl; 
        win=true;
    }
}

and call it

result(PlayerNumber,x);

where this code should be.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top