不在申报范围内,初学者蜗牛竞速游戏

not declared in scope, beginners snail racing game

本文关键字:蜗牛 游戏 初学者 范围内      更新时间:2023-10-16

好吧,我在谷歌上找到了一些关于这个问题的答案,但是答案太不同了,我无法真正做任何事情,所以我再问一遍,希望能有最好的结果。

我在g++中得到了以下错误;

snailrace.cpp: In function ‘int race(int, int)’:
snailrace.cpp:101:21: error: ‘rand’ was not declared in this scope

snailrace.cpp:123:3: error: a function-definition is not allowed here before ‘{’ token

snailrace.cpp:128:3: error: expected ‘}’ at end of input

我想我将能够解决除了snailrace.cpp:101:21: error: ‘rand’ was not declared in this scope的一切,我尝试了一切,它没有帮助!我怎么解决这个问题!?我都快疯了。谢谢!

//The snail race.
#include <iostream>
#include <ctime>
//Function declaration.
int race(int,int); 
void race(void);
int menu(void);
int placebet(int);
void init(void);
//Variables 
int money = 200; 
//the main function
int main(void)
{
  using std::cout; 
  init();
  int user_respons;
  cout << "Welcome to the snail race!n"; 
  while(user_respons = menu())
  {
    switch(user_respons)
    {
      case 1:
      case 2:
      case 3: 
    ::money +=
    race(placebet(user_respons), user_respons); 
    break;
      case 4: //The user did not bet
    race();
    break; 
  }
}
return 0; 
}
//Display user menu and sends user selection to the main function
int menu( void )
{
  using std::cout;
  using std::cin; 
  int user_respons;
  cout << "You have " << money << " USD.n";
  do
  {
    cout << "Race Menu: nn"
     << "1) Bet on snail 1n"
     << "2) Bet on snail 2n"
     << "3) Bet on snail 3n"
     << "4) Do not bet, just watching"
     << "0) Leave the race"; 
    cin >> user_respons;
  }
  while(user_respons < 0 && user_respons > 4);
  return user_respons;
}
//Decide how much one person will bet on a snail.
int placebet(int user_respons)
{
  using std::cout;
  using std::cin;
  int bet_amount;
  cout << "Snail " << user_respons << " is a good choice!n";
  cout << "How much would you like to bet on your snail?n"; 
  cin >> bet_amount; 
  return bet_amount;
}
//if just watching the race
void race(void) 
{
  race(0, 0); 
}
//if they are betting money. 
int race(int money, int user_respons)
{
  using std::cout; 
  using std::cin; 
  //Stores random number
  int winner = rand() % 3 + 1; 
  cout << "And the snails are off!n"; 
  cout << "Look at them go! n"; 
  cout << "The winner snail is " << winner << "n"; 
  if(winner == user_respons)
  {
    cout << "You win!n";
    return money * 2; 
  }
  else 
  {
  cout << "You lost.n"; 
  return money / 2;
  }

  //Handles the program start random
  void init(void) 
  {
    using std::srand; 
    using std::time; 
    srand(time(0)); 
  }

rand是您未包含的cstdlib的一部分。添加

#include <cstdlib>

您在void init(void)前面忘记加大括号了

int race(int money, int user_respons)
{
    /* ... */
    else 
    {
        cout << "You lost.n"; 
        return money / 2;
    }    
} /* <---- missing */

//Handles the program start random
void init(void) 
{
    using std::srand; 
    using std::time; 
    srand(time(0)); 
}

这可能是由于不一致的缩进。

对于第一个错误,您需要#include <stdlib.h> (rand需要)

如果你使用gcc编码,那么你必须包含

    #include<cstdlib>