新手小白,这是我写的半成品作业,实在是写不动了,也不知道该怎么改,有没有大佬帮我改改啊
#include <iostream>
#include <string>
using namespace std;
// 忍者类
class Ninja {
public:
string name;
int health;
int attack;
int defense;
Ninja(string n, int h, int a, int d) : name(n), health(h), attack(a), defense(d) {}
void useSkill() {
// 使用忍术
}
};
// 场景类
class Scene {
public:
string description;
Scene(string d) : description(d) {}
virtual void explore(Ninja& ninja) {
// 探索场景,可能会遇到事件或任务
}
};
// 剧情类
class Story {
public:
string description;
Story(string d) : description(d) {}
virtual void play(Ninja& ninja) {
// 播放剧情,可能会改变游戏状态或解锁新场景
}
};
// 任务类
class Task {
public:
string description;
bool completed;
Task(string d) : description(d), completed(false) {}
virtual void complete(Ninja& ninja) {
// 完成任务,可能会获得奖励或解锁新任务
}
};
int main() {
// 初始化忍者
Ninja naruto("鸣人", 100, 10, 5);
Ninja sasuke("佐助", 80, 15, 3);
// 初始化场景、剧情、任务
Scene forest("一片森林");
Story nineTails("九尾妖狐袭击木叶");
Task becomeHokage("成为火影");
// 开始游戏
cout << "欢迎来到火影忍者世界!" << endl;
while (true) {
// 输出当前场景的描述
cout << "你现在在" << forest.description << ",这里有很多树木和野兽。" << endl;
// 输出可选操作
cout << "你可以:\n1. 探索此地\n2. 查看任务列表\n3. 查看角色属性\n4. 退出游戏" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
// 探索场景,可能会遇到事件或任务
forest.explore(naruto);
break;
case 2:
// 查看任务列表,可以选择任务进行完成
cout << "你当前正在进行的任务是:" << becomeHokage.description << endl;
if (!becomeHokage.completed) {
cout << "你可以:\n1. 完成任务\n2. 放弃任务" << endl;
int taskChoice;
cin >> taskChoice;
switch (taskChoice) {
case 1:
becomeHokage.complete(naruto);
break;
case 2:
cout << "你放弃了成为火影的梦想。" << endl;
break;
default:
cout << "无效操作。" << endl;
break;
}
}
else {
cout << "你已经完成了所有任务。" << endl;
}
break;
case 3:
// 查看角色属性
cout << "你的角色属性是:" << endl;
cout << "名称:" << naruto.name << endl;
cout << "生命值:" << naruto.health << endl;
cout << "攻击力:" << naruto.attack << endl;
cout << "防御力:" << naruto.defense << endl;
break;
case 4:
// 退出游戏
cout << "感谢游玩火影忍者世界!" << endl;
return 0;
default:
cout << "无效操作。" << endl;
break;
}
}// 千鸟忍术类
class Chidori {
public:
int damage;
Chidori() : damage(50) {}
};
// 螺旋丸忍术类
class Rasengan {
public:
int damage;
Rasengan() : damage(40) {}
};
// 增加任务类
class Task2 : public Task {
public:
Task2(string d) : Task(d) {}
void complete(Ninja& ninja) {
cout << "你正在进行的任务是:" << description << endl;
cout << "你进入了森林,偶遇一名敌人!" << endl;
// 初始化敌人
Ninja enemy("敌人", 70, 12, 8);
// 和敌人战斗
while (true) {
// 输出战斗信息
cout << "你与" << enemy.name << "的战斗开始了!" << endl;
cout << ninja.name << "的生命值:" << ninja.health << endl;
cout << enemy.name << "的生命值:" << enemy.health << endl;
// 玩家选择行动
cout << "你可以:\n1. 攻击\n2. 逃跑" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
// 玩家进行攻击
cout << "你选择了攻击!" << endl;
cout << "请选择忍术或体术:\n1. 忍术\n2. 体术" << endl;
int attackChoice;
cin >> attackChoice;
if (attackChoice == 1) {
// 玩家使用忍术
if (ninja.attack >= enemy.defense) {
// 忍者的攻击力超过敌人的防御力,造成伤害
Chidori chidori;
enemy.health -= (ninja.attack - enemy.defense + chidori.damage);
cout << "你使用了千鸟忍术,对敌人造成了" << (ninja.attack - enemy.defense + chidori.damage) << "点伤害!" << endl;
}
else {
// 忍者的攻击力不足以突破敌人的防御力,未造成伤害
cout << "你使用了千鸟忍术,但是没有对敌人造成伤害!" << endl;
}
}
else if (attackChoice == 2) {
// 玩家使用体术
ninja.health += 100;
ninja.defense += 25;
cout << "你使用了体术,生命值增加100,防御力增加25!" << endl;
}
// 敌人进行攻击
if (enemy.attack >= ninja.defense) {
// 敌人的攻击力超过忍者的防御力,造成伤害
ninja.health -= (enemy.attack - ninja.defense);
cout << "敌人对你造成了" << (enemy.attack - ninja.defense) << "点伤害!" << endl;
}
else {
// 敌人的攻击力不足以突破忍者的防御力,未造成伤害
cout << "敌人没有对你造成伤害!" << endl;
}
// 判断战斗结果
if (enemy.health <= 0) {
// 敌人被打败了
cout << "你战胜了敌人,任务完成!" << endl;
completed = true;
ninja.attack += 20;
ninja.defense += 20;
break;
}
else if (ninja.health <= 0) {
// 忍者被打败了,游戏结束
cout << "你被敌人打败了,游戏结束!" << endl;
exit(0);
}
break;
case 2:
// 玩家选择逃跑
cout << "你选择了逃跑!" << endl;
if (ninja.attack >= enemy.attack) {
// 忍者的攻击力高于敌人,并成功逃脱
cout << "你成功逃脱!" << endl;
break;
}
else {
// 忍者的攻击力低于敌人,未能逃脱
cout << "你没能逃脱,被敌人追上了!" << endl;
// 初始化一乐拉面馆
Scene ichiraku("一乐拉面馆");
while (true) {
// 输出当前场景的描述
cout << "你现在在" << ichiraku.description << ",这里有很多美味的拉面。" << endl;
cout << "你可以:\n1. 进入店内躲避\n2. 离开拉面馆" << endl;
int shopChoice;
cin >> shopChoice;
switch (shopChoice) {
case 1:
// 进入店内躲避,成功逃脱并增加防御力
cout << "你进入了一乐拉面馆,躲过了追杀,成功逃脱!" << endl;
ninja.defense += 10;
break;
case 2:
// 离开拉面馆,被追上并胖揍一顿,增加防御力
cout << "你离开了拉面馆,被敌人追上并胖揍一顿,但是成功逃脱!" << endl;
ninja.health += 50;
ninja.defense += 10;
break;
default:
cout << "无效操作。" << endl;
break;
}
break;
}
// 进入下
}
default:
cout << "无效操作。" << endl;
break;
}
}
}
}
};
int main()
// 初始化忍者
{
int characterChoice;
cout << "请选择角色:\n1. 鸣人\n2. 佐助" << endl;
cin >> characterChoice;
if (characterChoice == 1) {
Ninja naruto("鸣人", 100, 10, 5);
Ninja sasuke("佐助", 80, 15, 3);
}
else if (characterChoice == 2) {
Ninja naruto("佐助", 80, 15, 3);
Ninja sasuke("鸣人", 100, 10, 5);
}
else {
cout << "无效选择,退出游戏。" << endl;
return 0;
}
// 初始化场景、剧情、任务
Scene konoha("木叶村");
Story nineTails("九尾妖狐袭击木叶");
Task becomeHokage("成为火影");
Task2 confess("被小樱表白");
// 开始游戏
cout << "欢迎来到火影忍者世界!" << endl;
while (true) {
// 输出当前场景的描述
cout << "你现在在" << konoha.description << ",这里是火影忍者的故乡。" << endl;
// 输出可选操作
cout << "你可以:\n1. 探索此地\n2. 查看任务列表\n3. 查看角色属性\n4. 退出游戏" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
// 探索场景,可能会遇到事件或任务
konoha.explore(naruto);
break;
case 2:
// 查看任务列表,可以选择任务进行完成
cout << "你当前正在进行的任务是:" << becomeHokage.description << endl;
if (!becomeHokage.completed) {
cout << "你可以:\n1. 完成任务\n2. 放弃任务" << endl;
int taskChoice;
cin >> taskChoice;
switch (taskChoice) {
case 1:
becomeHokage.complete(naruto);
break;
case 2:
cout << "你放弃了成为火影的梦想。" << endl;
break;
default:
cout << "无效操作。" << endl;
break;
}
}
else {
cout << "你已经完成了所有任务。" << endl;
}
if (becomeHokage.completed && !confess.completed) {
cout << "你是否接受小樱的表白?\n1. 接受\n2. 拒绝" << endl;
int confessChoice;
cin >> confessChoice;
switch (confessChoice) {
case 1:
cout << "你接受了小樱的表白!无论是鸣人还是佐助,你都会被小樱追杀!" << endl;
Scene ichiraku("一乐拉面馆");
while (true) {
// 输出当前场景的描述
cout << "你现在在" << ichiraku.description << ",这里有很多美味的拉面。" << endl;
cout << "你可以:\n1. 进入店内躲避\n2. 离开拉面馆" << endl;
int shopChoice;
cin >> shopChoice;
switch (shopChoice) {
case 1:
// 进入店内躲避,成功逃脱并增加防御力
cout << "你进入了一乐拉面馆,躲过了追杀,成功逃脱!" << endl;
naruto.defense += 10;
sasuke.defense += 10;
return 0;
}
}
}
}
}
}
}
}
}