C ++完成随机猜猜我的号码游戏外观

时间:2013-08-25 16:29:30

标签: c++ visual-studio-2012 console verify

我想知道是否有人可以查看我的代码“随机猜猜我的号码游戏”。

以下是所有代码:

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


}

任何能给我任何提示的人都会非常感激。

这个想法是玩家geuss是一个数字,程序会告诉他们它是高于还是低于计算机编号。

另请注意,它是使用Visual C ++ 2012编译的控制台应用程序

谢谢!

1 个答案:

答案 0 :(得分:3)

这段代码:

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

mill:

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

你可以用更简单的方式替换:

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

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

此:

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

用这个:

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

而且:

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

使用:

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

此外,最后一段代码在您的程序中出现两次,因此您可以创建一个函数

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

并将其命名为

result(PlayerNumber,x);

此代码应该在哪里。