0

嘿,我是 C++ 新手,我的代码没有任何问题。我试图制作一个非常基本的制作你自己的冒险游戏。谢谢你的时间。

#include <iostream>

using namespace std;

void next();

int main()
{

    int x;
    int y;
    int z;

    cout << "Welcome To \n";
    cout << "killing the Dragon! \n";
    cout << endl;

    cout << "There Is a Road infront of you you may go left or right \n";
    cout << "Left = any other number, Right = 1 \n";
    cin >> x;
    if(x == 1){
         do{       
            cout << "A rock blocks your bath \n";
            cout << "You Go back \n"; // Fix loop problem "Can't choose 0 more the  once of it all screws up"
            cout << "Left = 0, Right = 1 \n";
            cin >> x;
            if(x == 0){next();}
           }while(x == 1);

                  void next(){
                  cout << "You Come up to a small village \n";
                  cout << "You find 100 gold coins in your pocket \n";
                  cout << "You may continue your bath or buy a sword at the local blacksmith \n";
                  cout << "Continue = 1, buy sword = any other number \n";
                  cin >> y;  

    if(y == 1){                
    cout << "You buy the sword for 50G's and continue with your adventure \n";
    cout << "You find a dragon down the road luckaly you have your sword! \n";
    cout << "Do you kill the Dragon or let him live? \n";
    cout << "murder the but cack = 1, Let him live = any other Number \n";
    cin >> z;                 
              }else{          
              cout << "You continue your bath and get pwnd by a dragon down the road your a failure \n";
              system("pause");
              return 0;       
                   }          

    if(z == 1){               
    cout << "YA YOU PWNED THE DRAGON GRATZ BRO YOU NOW HAVE THE TITLE DRAGON SLAYER AND YOU MADE 1000000000000000000000000000000000000000000000000000000000000000000000G'S \n";
    system("pause");          
    return 0;                 
              }else{          
              cout << "you got owned by the dragon! ITS a DRAGON what where you thinking letting it \nlive now your dead hope your happy! \n";
              system("pause");
              return 0;       
                   }          
                   }          
                             }

}

另外,如果你能给我一些帮助,完整的编码建议,以保持代码更加干净和有条理,现在我所做的就是确保所有卷曲的黄铜都相互排成一列,如果语句被推迟,则每秒这样它就不会对代码产生一种明星影响。

4

2 回答 2

2

您已经在另一个函数中创建了一个函数:

int main()
{
   ...

   void next() { ... } // Illegal !

   ...

}

常规函数是非法的(你也可以通过 lambda 函数来做到这一点)。我认为您在函数和跳转之间感到困惑goto(使用它不是一个好习惯)。我认为您的情况不需要功能。因为函数next对 main 的局部变量有很多依赖。顺便说一句,您可以将内部函数放在主函数之外。

而且,一个好的缩进可以帮助你组织和格式化你的代码。

于 2013-11-24T19:21:30.653 回答
1
#include <iostream>
#include <cstdlib>
using namespace std;

void next();

int main()
{

    int x;
    int y;


    cout << "Welcome To \n";
    cout << "killing the Dragon! \n";
    cout << endl;

    cout << "There Is a Road infront of you you may go left or right \n";
    cout << "Left = any other number, Right = 1 \n";
    cin >> x;
    if(x == 1){
         do{
            cout << "A rock blocks your bath \n";
            cout << "You Go back \n"; // Fix loop problem "Can't choose 0 more the    once of it all screws up"
            cout << "Left = 0, Right = 1 \n";
            cin >> x;
            if(x == 0){
            next();
            }
           }while(x == 1);


                    }

}
void next()
{
    int y;
    int z;

    cout << "You Come up to a small village \n";
    cout << "You find 100 gold coins in your pocket \n";
    cout << "You may continue your bath or buy a sword at the local blacksmith \n";
    cout << "Continue = 1, buy sword = any other number \n";
    cin >> y;

    if(y == 1){
    cout << "You buy the sword for 50G's and continue with your adventure \n";
    cout << "You find a dragon down the road luckaly you have your sword! \n";
    cout << "Do you kill the Dragon or let him live? \n";
    cout << "murder the but cack = 1, Let him live = any other Number \n";
    cin >> z;
    }else{
        cout << "You continue your bath and get pwnd by a dragon down the road your a failure \n";
        system("pause");
                   }
    if(z == 1){
    cout << "YA YOU PWNED THE DRAGON GRATZ BRO YOU NOW HAVE THE TITLE DRAGON SLAYER AND YOU MADE 1000000000000000000000000000000000000000000000000000000000000000000000G'S \n";
    system("pause");
              }else{
              cout << "you got owned by the dragon! ITS a DRAGON what where you thinking letting it \nlive now your dead hope your happy! \n";
              system("pause");
                   }
                   }

我修复了您的代码,我发现了 10 个错误并修复了所有错误。如果要使用非常不可取的系统调用,则需要 cstdlib 头文件。此外,void 函数正在返回一个值。这在 C++ 中是非法的。函数内部的函数也是非法的

于 2013-11-24T19:51:11.760 回答