- gf25007 的博客
我的加压 最新版 0.9.4
- @ 2026-2-1 16:24:27
加压 ,全系统适配!
0.9.4
#include <bits/stdc++.h> /* 加压 0.9.4 */
#include <time.h>
using namespace std;
double hp,h,j,js,hm,jm,lh,wh,lj,as = 1,xh,ad;//hp血量,h伤害,j护甲,js甲伤,hm最大血量,jm护甲上限,lh上次的血量,wh使用风扇前的伤害,lj上次的护甲,as风扇增加的伤害,xh小蜘蛛伤害,ad增加
int r1,r2,r3,r4,r5,c,d = 2,f = 1,s = 1,w = 6,dz = 1,te = 0,ne = 0,hlv = 0;//r均为随机数,c次数,d无菌蛋次数,f烤土豆次数,s无菌蛋次数,w等待次数,z大蜘蛛次数,te(指令)变量,ne击杀敌人数量,hlv受伤等级
bool ms = 0,zl = 0,zz = 0,fu = 0,tt = 0;//ms风扇增加伤害,zl指令,zz使用蜘蛛,fu使用烤土豆,tt有效回合
string xj[5],mode;//xj使用道具
void eme() {
cout << "\n";
xh = (rand() % 50 + 60) / 10.0; //6~11
r1 = rand() % 6 + 1; //护甲等级
r2 = rand() % 3 + 1; //护甲值
r3 = rand() % 50 + 10; // 彩蛋概率:5%
if (r3 != 50 && r3 != 49) {
if (r1 == 1) {
j = 10 * r2;
cout << "对方1甲耐久:" << j << "/" << j;
}
if (r1 == 2) {
j = 20 * r2;
cout << "对方2甲耐久:" << j << "/" << j;
}
if (r1 == 3) {
j = 30 * r2;
cout << "对方3甲耐久:" << j << "/" << j;
}
if (r1 == 4) {
j = 35 * r2;
cout << "对方4甲耐久:" << j << "/" << j;
}
if (r1 == 5) {
r2++;
j = 45 * r2;
cout << "对方5甲耐久:" << j << "/" << j;
}
if (r1 == 6) {
r2++;
j = 60 * r2;
cout << "对方6甲耐久:" << j << "/" << j;
}
hp = 100;
}
if (r3 == 50 || r3 == 49) {
hp = 250 * r2;
j = 100 * r2;
r1 = 7;
cout << "对面是桂! (7级)护甲:" << j << "/" << j;
}
jm = j;
lh = hp;
hm = hp;
lj = j;
hlv = 0;
}
void dr(int x,int y,string z) {//x = j,y = r1,z = xj
if (z == "1") {
h = (rand() % 1100 + 200) / 10.0;
if (r1 > 3) h = (double)h / (double)(r1 / 2.1);
else if (r1 != 1) h = (double)h / (double)(r1 / 1.7); //1 -> 1.1; 2 -> 1.18; 3 -> 1.76; 4 -> 1.9; 5 -> 2.38; 6 -> 2.86
else h = (double)h / 1.1;
wh = h;
h *= as;
j -= h;
cout << "\nBOOM!!!";
if (lj > 0 && j <= 0) {
r4 = rand() % 3 + 1; //随机语言
if (r4 == 1) cout << "\n我的甲呀!";
if (r4 == 2) cout << "\n我的假牙!";
if (r4 == 3) cout << "\n我的加压!";
}
} else if (z == "2") {
h = (rand() % 350 + 50) / 10.0; //5.0 ~ 40.0
r4 = rand() % 2 + 1; //随机语言
if (r4 == 1) cout << "\n敌人中陷阱了!";
if (r4 == 2) cout << "\n陷阱被触发了!";
if (r1 > 3) j -= h / (r1 / 2);
else j -= (h + 5);
wh = h;
h *= as;
hp -= h;
} else if (z == "3") {
h = (rand() % 450) / 10.0;
if (h == 0) h += 0.1;
wh = h;
js = (rand() % (int)(h * 10)) / 10.0;
h *= as;
js *= as;
j -= js;
hp -= h - js;
ad = (rand() % 5) - 1; // -1 0 1 2 3
if (ad < 1 && mode == "1") { // 减少次数概率:40%
cout << "\n鸟-电磁脉冲:你没能有效地控制敌人! 你的游戏次数-1次!";
c--;
} else if (ad == 1 && mode == "1") cout << "\n鸟-电磁脉冲:无事发生......"; //无事发生概率:20%
else if(mode == "1") {
cout << "\n鸟-电磁脉冲:你眩晕了敌人! 你的游戏次数+1次!"; //增加次数概率:40%
c++;
}
} else if (z == "4") {
if (d > 0) {
d--;
h = 1.0;
wh = h;
if (j > 0) j -= 0.3;
hp -= h * as;
ad = (rand() % 4) - 1; // -1 0 1 2
if (ad < 0 && mode == "1") { // 减少次数概率:25%
cout << "\n无菌蛋-电磁脉冲:你没能有效地控制敌人! 你的游戏次数-1次!";
c--;
} else if (ad == 0 && mode == "1") cout << "\n无菌蛋-电磁脉冲:无事发生......"; //无事发生概率:25%
else if (mode == "1") {
cout << "\n无菌蛋-电磁脉冲:你眩晕了敌人! 你的游戏次数+2次!"; //增加次数概率:50%
c += ad;
}
if (lh > 0 && hp <= 0 && mode == "1") {
cout << "\n\n-------达成挑战:无菌蛋杀手 ! (难度:A- 使用无菌蛋击杀1名敌人) 奖励 3 次数!-------\n";
c += 3;
}
if (lj > 0 && j <= 0 && mode == "1") {
cout << "\n\n-------达成挑战:我的甲 ! (难度:S- 使用无菌蛋碎甲) 奖励 9 次数!-------\n";
c += 9;
}
} else {
cout << "\n无菌蛋次数耗尽!";
c++;
return ;
}
} else if (z == "5") {
if (s <= 0) {
cout << "\n风扇次数耗尽!";
c++;
return ;
}
ms = true;
as = (rand() % 50 + 175) / 100.00;
cout << "\n(不消耗次数)有人的耳膜炸了! 下次伤害" << as << "倍";
s--;
c++;
} else if (z == "6") {
cout << "\nT仔出动!";
wh = xh;
if (r1 > 3) j -= (double)xh / (double)(r1 / 1.4) * as;
else j -= (double)xh / (double)r1 * as;
zz = true;
} else if (z == "7") {
if (f <= 0) {
cout << "\n烤土豆次数耗尽!";
c++;
return ;
}
fu = true;
h = (rand() % 50 + 70) / 10.0;
wh = h;
for (int i = 1; i <= rand() % 10 + 4; i++) {
cout << "-" << h << " ";
hp -= h * as;
h = (rand() % 55 + 75) / 10.0;
}
f--;
} else if (z == "8") {
if (dz <= 0) {
cout << "\n大蜘蛛次数耗尽!";
c++;
return ;
}
cout << "\n";
r5 = rand() % 100 + 1; //增加的道具 26:25:24:7:7:7:4
if (r5 <= 26) {
cout << "你获得了 无菌蛋!";
d++;
} else if (r5 <= 51) {
cout << "你获得了 风扇!";
s++;
} else if (r5 <= 75) {
cout << "你获得了 烤土豆!";
f++;
} else if (r5 <= 82) {
cout << "你获得了 无菌蛋 与 风扇!";
d++;
s++;
} else if (r5 <= 89) {
cout << "你获得了 无菌蛋 与 烤土豆!";
d++;
f++;
} else if (r5 <= 96) {
cout << "你获得了 风扇 与 烤土豆!";
s++;
f++;
} else {
cout << "你获得了 无菌蛋, 烤土豆 与 风扇!";
if (mode != "1") {
cout << "\n\n-------达成挑战:运气 ! (难度:B 大蜘蛛获得3个道具) 奖励 3 次数!-------\n";
c += 3;
}
d++;
s++;
f++;
}
h = (rand() % 50 + 30) / 10.0; //3.0~8.0
wh = h;
h *= as;
if (j >= h) {
j -= h;
hp -= h;
} else j -= h * 2;
dz--;
} else if (z == "9") {
h = (rand() % 40 + 60) / 10.0; //6.0~10.0
hlv += 1;
wh = h;
h *= as;
hp -= h;
} else {
cout << "\n输出正确的数字!";
c++;
}
if (z != "1" && z != "2" && z != "3" && z != "4" && z != "6" && z != "7" && z != "8" && z != "9") return ;
if (j <= 0) {
hp += j;
j = 0;
}
if (hlv >= 1) {
hp -= pow(hlv,1.2);
cout << "\n血量流失" << fixed << setprecision(1) << pow(hlv,1.2) << "点!";
if (rand() % 5 == 0) hlv--;
}
if (ms) {
if (!zz && !fu) {
cout << "伤害增加" << fixed << setprecision(1) << h - wh;
} else if (fu) {
cout << "\n使用风扇后不可使用烤土豆!";
s++;
} else if (zz) {
cout << "伤害增加" << fixed << setprecision(1) << xh - wh;
}
}
cout << "\n血量:" << fixed << setprecision(1) << hp << "/" << hm << " 护甲";
cout << fixed << setprecision(1) << j << "/" << jm;
cout << fixed << setprecision(1) << "\n护甲减少:" << lj - j;
cout << fixed << setprecision(1) << " 护甲共减少" << jm - j;
if (hp < hm) {
cout << fixed << setprecision(1) << "\n血量减少:" << lh - hp;
cout << fixed << setprecision(1) << " 血量共减少:" << hm - hp;
}
if (hp <= 0 && jm * 0.8 < j && lh > 0 && mode != "1") {
cout << "\n\n-------达成挑战:夺舍 ! (难度:C- 击杀时 护甲耐久 > 80%) 奖励 1 次数!-------\n";
c++;
}
lh = hp;
lj = j;
if (ms) ms = false;
as = 1;
xh += (rand() % 40 + 50) / 10.0;//5~9
zz = false;
fu = false;
tt = true;
if (w == 0) {
w = 6;
dz++;
} else if (tt) w--;
return ;
}
void pvp(int x,int y,string z) { //x = j,y = r1,z = xj
cout << "暂未开放!";
return ;
/* string fst;
bool suc=false;
int p1j,p1jm,p1hp,p1hm,p1d,p1s,p1f,p1dz,p1w;
int p2j,p2jm,p2hp,p2hm,p2d,p2s,p2f,p2dz,p2w;
while(suc==false){
if (fst == "1") 1先手;suc=true;
else if (fst == "2") 2先手;suc=true;
else if (fst == "3") rand() % 2 + 1; 1或2;suc=true;
else {
cout << "";
suc=false;
}
} */
}
void eve(int x,int y,string z) { //x = j,y = r1,z = xj
while (true) {
if (hp <= 0) {
cout << "\n\n第" << ne + 1 << "个敌人\n";
eme();
ne++;
}
printf("\n你准备使用\n(1.山楂 2.面包 3.鸟 4.无菌蛋(%d) 5.风扇(%d) 6.小蜘蛛 7.烤土豆(%d) 8.大蜘蛛(%d [%d回合后+1]) 9.烧饼):",d,s,f,dz,w+1);
tt = false;
cin >> xj[1];
dr(j,r1,xj[1]);
}
return ;
} /*--------以下为 main--------*/
int main() {
srand(time(0));
cout << "请输入游戏模式\n1.单人模式 只有1个敌人!\n2.双人对战 互相对打,看谁运气好!\n3.无尽模式 无尽的敌人! 无尽的次数! 一个又一个!\n输入模式:";
cin >> mode;
if (zl == false && te == 0 && mode == "2" || mode == "3") {
if (mode == "2") pvp(j,r1,xj[1]);
else eve(j,r1,xj[1]);
return 0;
}
eme();
if (mode == "1") {
cout << "\n请输入你的游玩次数(1~20):";
cin >> c;
if (!(c >= 1 && c <= 20)) {
cout << "游戏次数有误!";
return 0;
}
}
for (int i = 1; i <= c; i++) {
if (te == 2) te = 0;
if (te == 1) te++;
if (zl == false) {
if (c - i + 1 != 1) cout << "\n\n你还剩" << c - i + 1 << "次游戏机会! ";
else cout << "\n\n最后1次游戏机会! ";
printf("你准备使用\n(1.山楂 2.面包 3.鸟 4.无菌蛋(%d) 5.风扇(%d) 6.小蜘蛛 7.烤土豆(%d) 8.大蜘蛛(%d [%d回合后+1]) 9.烧饼):",d,s,f,dz,w+1);
}
zl = false;
tt = false;
cin >> xj[1];
if (xj[1] == "/time" || xj[1] == "/health" || xj[1] == "/jia") {
cin >> xj[2];
if (xj[2] == "add" || xj[2] == "set") {
cin >> ad;
if (ad >= 0 && ad < 2147483647) {
if (xj[1] == "/time") {
if (xj[2] == "add") {
c += ad + 1;
cout << "\n已将游戏次数增加" << (int)ad;
} else {
c = ad + 1;
cout << "\n已将游戏次数设为" << (int)ad;
}
} else if (xj[1] == "/health") {
if (xj[2] == "add") {
hp += ad;
cout << "\n已将血量增加" << (int)ad;
} else {
hp = ad;
cout << "\n已将血量设为" << (int)ad;
}
hm = hp;
lh = hp;
cout << "\n血量:" << fixed << setprecision(1) << hp << "/" << hm;
c++;
} else if (xj[1] == "/jia") {
if (xj[2] == "add") {
j += ad;
cout << "\n已将护甲增加" << ad;
} else {
j = ad;
cout << "\n已将护甲设为" << ad;
}
jm = j;
lj = j;
cout << "\n护甲:" << fixed << setprecision(1) << j << "/" << jm;
c++;
}
} else {
cout << "> 错误的函数 ,在 " << ad << "\n输入任意字符继续游玩...";
zl = true;
c += 2;
te++;
}
}
} else {
if (zl == false && te == 0 && mode == "1") dr(j,r1,xj[1]);
}
}
return 0;
}
更新日志:https://www.bcoi.cn/blog/476/69b405829c207eea05238bd3#1773405570489