-
Notifications
You must be signed in to change notification settings - Fork 0
/
Scenario.cpp
106 lines (98 loc) · 3.41 KB
/
Scenario.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "StdAfx.h"
#include "Scenario.h"
Scenario::Scenario(void)
{
cout << "==============================" << endl;
cout << "====拯救世界吧,少年!v2.0====" << endl;
cout << "==============================" << endl;
PC;
}
Scenario::~Scenario(void)
{
}
Monster Scenario::choice()
{
int optional;
do
{
CLS;
cout <<right << "请选择你要挑战的怪兽:" << endl;
cout << setfill('-') << setw(30) << "" << endl;
cout << "| 1:" << setfill(' ') << setw(26) << "巴尔坦虫怪【lv1】|" << endl;
cout << "| 2:" << setw(26) << "格斯安鱼怪【lv5】|" << endl;
cout << "| 3:" << setw(26) << "泰斯鸟怪【lv10】|" << endl;
cout << "| 4:" << setw(26) << "绿头猿怪【lv30】|" << endl;
cout << "| 5:" << setw(26) << "赤龙怪(BOSS)【lv50】|" << endl;
cout << setfill('-') << setw(30) << "" << endl;
cin >> optional;
} while (optional<1 || optional>5);
Monster mon(optional-1);
return mon;
}
bool Scenario::challenge()
{
while(true)
{
showInfo();
myHero.choice();
myHero.attack(myMonster);
showInfo(myHero.name);
if(myMonster.isAlive())
{
myMonster.attack(myHero);
showInfo(myMonster.name);
if (!myHero.isAlive())
{
myHero.levelDown();
if (myHero.level<=0)
{
cout << endl << "======游戏失败!======" << endl;
return false;
}
return true;
}
else
{
round++;
for (int i=0;i!=NUM_CRAFTS;i++)
{
myHero.crafts[i].action = myHero.crafts[i].action <= 0 ? 0 : myHero.crafts[i].action - 1;
}
PC;
continue;
}
}
else
{
if (myMonster.level == 50)
{
cout << endl << "======恭喜通关!======" << endl;
return false;
}
myHero.levelUp(myMonster.level);
return true;
}
}
}
void Scenario::showInfo()
{
cout << left << setfill('-') << setw(39) << "" << endl; // 表格宽度共计40个半角字符
cout << "|" << setfill(' ') << "第" << setw(3) << round << "轮" <<setw(30) << "" << "|" << endl;
cout << setfill('-') << setw(39) << "" << endl;
cout << "|" << setfill(' ') << setw(6) << "英雄:" << setw(12) << myHero.name << "|" << setw(6) << "怪兽:" << setw(12) << myMonster.name << "|" << endl;
cout << "|" << setw(6) << "级别:" << setw(12) << myHero.level << "|" << setw(6) << "级别:" << setw(12) << myMonster.level << "|" << endl;
cout << "|" << setw(6) << "HP:" << setw(12) << myHero.HP << "|" << setw(6) << "HP:" << setw(12) << myMonster.HP << "|" << endl;
cout << "|" << setw(6) << "MP:" << setw(12) << myHero.MP << "|" << setw(18) << "" << "|" << endl;
cout << setfill('-') << setw(39) << "" << endl;
}
void Scenario::showInfo(string name)
{
cout << left << setfill('-') << setw(39) << "" << endl; // 表格宽度共计40个半角字符
cout << "|" << setfill(' ') << setw(12) << name << "攻击!" << setw(19) << "" << "|" << endl;
cout << setfill('-') << setw(39) << "" << endl;
cout << "|" << setfill(' ') << setw(6) << "英雄:" << setw(12) << myHero.name << "|" << setw(6) << "怪兽:" << setw(12) << myMonster.name << "|" << endl;
cout << "|" << setw(6) << "级别:" << setw(12) << myHero.level << "|" << setw(6) << "级别:" << setw(12) << myMonster.level << "|" << endl;
cout << "|" << setw(6) << "HP:" << setw(12) << myHero.HP << "|" << setw(6) << "HP:" << setw(12) << myMonster.HP << "|" << endl;
cout << "|" << setw(6) << "MP:" << setw(12) << myHero.MP << "|" << setw(18) << "" << "|" << endl;
cout << setfill('-') << setw(39) << "" << endl;
}