gpt4 book ai didi

c++ - 无法弄清楚在函数之后类中没有正确的变量值有什么问题等等

转载 作者:行者123 更新时间:2023-11-30 05:33:18 24 4
gpt4 key购买 nike

<分区>

嘿嘿!我突然对 C++ 编码产生了兴趣,所以我开始研究,现在我决定写一个基于文本的口袋妖怪游戏!但是我无法弄清楚我的代码有什么问题,也许我只是犯了一个我不知道的新错误?因为我什至不知道我应该在谷歌搜索什么。这是代码:

class Charmander {
public:
int lvl=0;
int xp=0;
int str=15+3*lvl;
int agi=15+3*lvl;
int hp=30+6*lvl;
int energy=25+5*lvl;
int cen=0;
int nxp=1000;
}cha;

class Squirtle {
public:
int lvl=0;
int xp=0;
int str=15+3*lvl;
int agi=15+3*lvl;
int hp=30+6*lvl;
int energy=25+5*lvl;
int cen=0;
int nxp=1000;
}squ;

class Pikachu {
public:
int lvl;
int xp;
int str=10+2*lvl;
int agi=25+5*lvl;
int hp=25+5*lvl;
int energy=25+5*lvl;
int cen=0;
int nxp=1000;
}pik;

class Bulbasaur {
public:
int lvl=0;
int xp=0;
int str=20+4*lvl;
int agi=10+2*lvl;
int hp=35+7*lvl;
int energy=25+5*lvl;
int cen=0;
int nxp=1000;
}bul;

class CurrentPokemon {
public:
int lvl=0;
int fl=0;
int xp=0;
int str=0;
int agi=0;
int hp=0;
int energy=0;
int cen=0;
int nxp=1000;
string tag;
string name;
}curr;

int level () {
int lvlup;
lvlup = curr.xp/curr.nxp;
while (lvlup >= 1) {
lvlup = curr.xp/curr.nxp;
if (lvlup >= 1) {
curr.lvl++;
curr.xp=curr.xp-curr.nxp;
curr.nxp=curr.nxp*1.5;
cout << "You reached level " << curr.lvl << " !" << endl;
}
else {
break;
}
}
}

int update () {
if (curr.lvl >> curr.fl) {
if (curr.name == "Pikachu") {
pik.nxp=curr.nxp;
pik.xp=curr.xp;
pik.lvl=curr.lvl;
pik.cen=curr.cen;
curr.str=pik.str;
curr.agi=pik.agi;
curr.hp=pik.hp;
curr.energy=pik.energy;
}

}
}


int main() {
string a,c1,c2,c3,c4,g;
int f;
cout << "You are starting your journey as a pokemon master!" << endl;
Sleep (200);
cout << "You have to choose your companion for the advantures you will experience!" << endl;
Sleep (200);
tryagain:
cout << "c for Charmander, s for Squirtle, p for Pikachu, b for Bulbasaur!" << endl;
cin >> c1;
if (c1 == "c") {
a = "Charmander";
cha.str = cha.str + 10;
cha.agi = cha.agi + 7;
cha.hp = cha.hp + 20;
cha.energy = cha.hp + 20;
cha.cen = cha.cen + 20;
curr.str = cha.str;
curr.agi = cha.agi;
curr.hp = cha.hp;
curr.energy = cha.energy;
curr.cen = cha.cen;
curr.tag = "Fire";
curr.name = "Charmander";
}
else if (c1 == "s") {
a = "Squirtle";
squ.str = squ.str + 12;
squ.agi = squ.agi + 10;
squ.hp = squ.hp + 25;
squ.energy = squ.energy + 20;
squ.cen = squ.cen + 20;
curr.str = squ.str;
curr.agi = squ.agi;
curr.hp = squ.hp;
curr.energy = squ.energy;
curr.cen = squ.cen;
curr.tag = "Water";
curr.name = "Squirtle";
}
else if (c1 == "p") {
a = "Pikachu";
pik.str = pik.str + 8;
pik.agi = pik.agi + 15;
pik.hp = pik.hp + 15;
pik.energy = pik.energy + 20;
pik.cen = pik.cen + 20;
curr.str = pik.str;
curr.agi = pik.agi;
curr.hp = pik.hp;
curr.energy = pik.energy;
curr.cen = pik.cen;
curr.tag = "Eletricity";
curr.name = "Pikachu";
}
else if (c1 == "b") {
a = "Bulbasaur";
bul.str = bul.str + 15;
bul.agi = bul.agi + 2;
bul.hp = bul.hp + 30;
bul.energy = bul.energy + 20;
bul.cen = bul.cen + 20;
curr.str = bul.str;
curr.agi = bul.agi;
curr.hp = bul.hp;
curr.energy = bul.energy;
curr.cen = bul.cen;
curr.tag = "Plant";
curr.name = "Bulbasaur";
}
else {
cout << "Sorry, wrong choice, try again!" << endl;
goto tryagain;
}
cout << "You have chosen " << a << " ,may you be friends forever!" << endl;
Sleep (200);
tryagain2:
cout << "Would you like to pass a training course with your pokemon? (y/n)" << endl;
cin >> c2;
if (c2 == "y") {
curr.xp = curr.xp + 1500;
curr.str = curr.str + 20;
curr.agi = curr.agi + 5;
curr.hp = curr.hp + 5;
curr.energy = curr.energy + 10;
curr.cen = curr.cen - 15;
}
else if (c2 == "n") {
cout << "Very well then." << endl;
}
level();
update();
cin >> f;
if (f==1) {
curr.xp = curr.xp + 600;
}
level();
if (f==2) {
curr.xp = curr.xp + 4600;
}
level();
update();
cout << " lvl " << curr.lvl << " xp " << curr.xp << " str " << curr.str << " agi " << curr.agi << " hp " << curr.hp << " energy " << curr.energy << " Current energy" << curr.cen << " " << curr.tag << endl;
cout << " lvl " << pik.lvl << " xp " << pik.xp << " str " << pik.str << " agi " << pik.agi << " hp " << pik.hp << " energy " << pik.energy << " Current energy" << pik.cen << " " << endl;
return 0;
}

只对 Pikachu 执行了 int update (),因为在每一步之后我都想检查一切是否正确。所以我的选择是 p -> y -> 2 我想要得到的是:str 10 -> p -> str 18 -> y -> 2 -> (此时等级为 3) -> str 24 ,但我得到的是 str 18, agi 40, hp 40, energy 45, Current Energy 5 , xp 1350, lvl 3(在两条线上,curr 和 pik)。

如果有人能帮我解决这个问题,我将不胜感激!祝你有美好的一天,谢谢。

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