0
#include <iostream>
#include <string>
#include <random>
#include <Windows.h>
using namespace std;


    int playerHP = 20;
    int enemyHP = 20;
    int playerAtk =(rand()%4 + 5); //Find a random number between 5 and 8
    int playerDef = (rand()%4 + 5);
    int playerAgi = (rand()%4 + 5);
    int enemyAtk = (rand()%4 + 4); //Find a random number between 5 and 7
    int enemyDef = (rand()%4 + 4);
    int enemyAgi = (rand()%4 + 4);
    cout<<"---------------"<< endl; // what in the sam hill is going on
    cout<<"FIGHTER STATS"<< endl;
    cout<<"----------------"<<endl;
    cout<<"Player Stats:"<<endl;
    cout<<"HP "<<playerHP<<endl;
    cout<<"ATK "<<playerAtk<<endl;
    cout<<"DEF "<<playerDef<<endl;
    cout<<"AGI "<<playerAgi<<endl;
    cout<<"ENEMY STATS:"<<endl;
    cout<< "HP "<<enemyHP<<endl;    
    cout<<"ATK "<<enemyAtk<<endl;
    cout<<"DEF "<<enemyDef<<endl;
    cout<<"AGI "<<enemyAgi<<endl;

我似乎无法弄清楚为什么我的 cout 语句会在我的程序中产生如此多的错误。这显然不是我的全部程序,但我想让事情变得简短而甜蜜。我收到错误 C2143:syntax eerror: missing ';' 在 '<<' 之前,C4430:缺少类型说明符-int 假定,以及 C2086 'int cout':在我的几乎所有 cout 语句上重新定义,我不知道为什么。感谢您提供的所有帮助,请尽可能地简化操作,这是我的第一个 C++ 程序。

4

1 回答 1

3

假设您已经发布了您要编译的代码,例如

cout<<"---------------"<< endl;

需要在函数内部。

前面的行不会导致错误,因为它可以在任何函数之外声明具有全局范围的变量。但是,这样做并不是很好的做法,如果变量只是单个函数所需要的,你当然不应该将它们设为全局变量。

尝试将所有代码移动到一个main函数中。IE

int main()
{
    int playerHP = 20;
    int enemyHP = 20;
    int playerAtk =(rand()%4 + 5);
    // rest of your code goes here
}

一旦你的代码编译并运行,你会发现你的随机数总是被初始化为相同的值。在调用 之前,您需要调用srand,选择一个在运行之间变化的值rand。如果您不介意每秒仅更改一次,则当前时间是一个容易选择的种子

int main()
{
    int playerHP = 20;
    int enemyHP = 20;
    srand(time(NULL));
    int playerAtk =(rand()%4 + 5);
于 2013-08-30T16:27:03.983 回答