比赛 |
20120722 |
评测结果 |
AWWWWWWWTT |
题目名称 |
杀手游戏 |
最终得分 |
10 |
用户昵称 |
KZNS |
运行时间 |
2.034 s |
代码语言 |
C++ |
内存使用 |
0.28 MiB |
提交时间 |
2016-02-19 10:01:14 |
显示代码纯文本
//KZNS
#include <fstream>
#include <string>
using namespace std;
//
ifstream fin ("bang.in");
ofstream fout ("bang.out");
#define tsnc fin>>s;pr[ts].addcard(s);
#define lsnc fin>>s;pr[ls].addcard(s);
#define db if(pr[ts].die()){FFF=1;break;}
#define dc if(FFF)break;
//
class Player {
public:
short int HP, Bang, Grenade, Ghost, Knife, Miss, Parry;
Player() {
HP=4;
Bang=0;
Grenade=0;
Ghost=0;
Knife=0;
Miss=0;
Parry=0;
}
bool die() {
return !HP;
}
void addcard(string s) {
if (s=="Bang")
Bang++;
else if (s=="Grenade")
Grenade++;
else if (s=="Ghost")
Ghost++;
else if (s=="Knife")
Knife++;
else if (s=="Parry")
Parry++;
}
bool bang() {
if (Parry) {
Parry--;
return true;
}
if (Miss) {
Miss--;
return false;
}
HP--;
return false;
}
bool grenade() {
if (Parry) {
Parry--;
return true;
}
if (Miss) {
Miss--;
return false;
}
HP--;
return false;
}
void ghost() {
if (Bang)
Bang--;
else
HP--;
}
void knife() {
HP--;
}
void giveup() {
int ul=0;
if (Parry>HP) {
Parry=HP;
Miss=0;
Bang=0;
return;
}
else {
ul=HP-Parry;
}
if (Miss>ul) {
Miss=ul;
Bang=0;
return;
}
else {
ul=ul-Miss;
}
if (Bang>ul) {
Bang=ul;
}
}
};
//
void wst() {
string s;
fin >>s;
while (s!="===")
fin >>s;
}
bool playgame() {
string s;
fin >>s;
if (s==".")
return false;
Player pr[2];
int ts=0, ls=1;
pr[ts].addcard(s);
tsnc tsnc tsnc
lsnc lsnc lsnc lsnc
bool FFF=false;
while (true) {
tsnc;tsnc;
//Ghost
for (int i=0; i<pr[ts].Ghost; i++) {
pr[ls].ghost();
db
}
pr[ts].Ghost=0;
dc
//Knife
for (int i=0; i<pr[ts].Knife; i++) {
pr[ls].knife();
db
}
pr[ts].Knife=0;
dc
//Grenade
for (int i=0; i<pr[ts].Grenade; i++) {
if (pr[ls].grenade()) {
lsnc
}
else
db;
}
pr[ts].Grenade=0;
dc
//Bang
if (pr[ts].Bang) {
pr[ts].Bang--;
if (pr[ls].bang()) {
lsnc
}
else if (pr[ls].die())
FFF=true;
}
dc
//giveup
pr[ts].giveup();
ts^=1;
ls^=1;
}
wst();
if (ts==0)
fout <<"WIN" <<endl;
else
fout <<"LOSE" <<endl;
return true;
}
//
int main() {
while (true) {
if (!playgame())
return 0;
}
return 0;
}
//UBWH