gpt4 book ai didi

c++ - 需要帮助从不同的功能输出东西(C++)

转载 作者:行者123 更新时间:2023-11-30 01:45:18 25 4
gpt4 key购买 nike

我对 C++ 和一般编码还很陌生。我正在尝试制作一个基本的小的多项选择类型的练习游戏,但我遇到了一个难题。

程序也没有输出我想要的。这是代码:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>

using namespace std;

void sword(int damage);
void fists(int damage);

static int enemyHealth = 250;

int main() {
srand(time(0));

string SOF; //Abreveation for "Sword Or Fists"

cout << "You will be fighting a mean bad guy. Are you using a sword, or your fists?\n";

while (SOF != "sword" && SOF != "fists"){
cout << "Please enter your choice of either 'sword' or 'fists': ";
cin >> SOF;
}

cout << "Okay! Time to fight! \n";

if (SOF == "fists") {
void fists();
}
else if (SOF == "sword") {
void sword();
}
else{ (NULL); }

cout << "Congratulations! You have vanquished that foul beast!\n";

system("pause");
}

//This is for when the user chooses 'sword'
void sword(int damage = rand() % 100 + 50) {
while (enemyHealth > 0){
cout << "You deal " << damage << " damage with your sharp sword. \n";
enemyHealth -= damage;
}
}

//This is for when the user chooses 'fists'
void fists(int damage = rand() % 10 + 4) {
while (enemyHealth > 0){
cout << "You deal " << damage << " damage with your womanly fists. \n";
enemyHealth -= damage;
}
}

第一部分工作正常,但是当我输入我选择的 “fists”“sword” 时,输出是:

Okay! Time to fight!
Congratulations! You have vanquished that foul beast!

但我希望它输出用拳头或剑造成的伤害。

如果我能得到一些帮助,那就太棒了。谢谢!

最佳答案

void fists();是声明,不是调用,改为fists();sword();

其他要看的东西:

  • 默认参数在 main 之前的函数声明中声明(或者只是将整个函数移到那里)
  • C++ 中的默认参数只计算一次,因此您的代码中的所有“命中”都是相同的
  • 局部变量名通常不以大写形式命名,SOF 看起来像是一个#defined 常量或类似的。

关于c++ - 需要帮助从不同的功能输出东西(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com