! happy

4 条评论

  • @ 2026-4-20 16:37:22
    https://oj.qdturing.cn/d/A1002/homework/69e1cb46c471ea99f2f94c92
    
    • @ 2026-4-6 9:31:02

      小柏然,你这连在c++运行都运行不了

      • @ 2026-5-16 11:33:45

        别说别人

    • @ 2026-4-4 16:07:40

      1.3.19

      #include <iostream>
      #include <cstdlib>
      #include <ctime>
      #include <windows.h>
      #include <vector>
      #include <string>
      #include <cstdint>
      #include <cstdio>
      #include <cstring>
      
      using namespace std;
      
      typedef uint8_t BYTE;
      typedef uint32_t WORD32;
      
      #define ROTLEFT(a,b) (((a) << (b)) | ((a) >> (32-(b))))
      #define ROTRIGHT(a,b) (((a) >> (b)) | ((a) << (32-(b))))
      
      #define CH(x,y,z) (((x) & (y)) ^ (~(x) & (z)))
      #define MAJ(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
      #define EP0(x) (ROTRIGHT(x,2) ^ ROTRIGHT(x,13) ^ ROTRIGHT(x,22))
      #define EP1(x) (ROTRIGHT(x,6) ^ ROTRIGHT(x,11) ^ ROTRIGHT(x,15))
      #define SIG0(x) (ROTRIGHT(x,7) ^ ROTRIGHT(x,18) ^ ((x) >> 3))
      #define SIG1(x) (ROTRIGHT(x,17) ^ ROTRIGHT(x,19) ^ ((x) >> 10))
      
      const WORD32 k[64] = {
      	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,
      	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,
      	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,
      	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,
      	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,
      	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,
      	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,
      	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
      };
      
      typedef struct {
      	BYTE data[64];
      	WORD32 datalen;
      	uint64_t bitlen;
      	WORD32 state[8];
      } SHA256_CTX;
      
      void sha256_transform(SHA256_CTX *ctx, const BYTE data[]) {
      	WORD32 a, b, c, d, e, f, g, h, i, j, t1, t2, m[64];
      
      	for (i = 0, j = 0; i < 16; ++i, j += 4)
      		m[i] = (data[j] << 24) | (data[j+1] << 16) | (data[j+2] << 8) | (data[j+3]);
      	for (; i < 64; ++i)
      		m[i] = SIG1(m[i-2]) + m[i-7] + SIG0(m[i-15]) + m[i-16];
      
      	a = ctx->state[0];
      	b = ctx->state[1];
      	c = ctx->state[2];
      	d = ctx->state[3];
      	e = ctx->state[4];
      	f = ctx->state[5];
      	g = ctx->state[6];
      	h = ctx->state[7];
      
      	for (i = 0; i < 64; ++i) {
      		t1 = h + EP1(e) + CH(e,f,g) + k[i] + m[i];
      		t2 = EP0(a) + MAJ(a,b,c);
      		h = g;
      		g = f;
      		f = e;
      		e = d + t1;
      		d = c;
      		c = b;
      		b = a;
      		a = t1 + t2;
      	}
      
      	ctx->state[0] += a;
      	ctx->state[1] += b;
      	ctx->state[2] += c;
      	ctx->state[3] += d;
      	ctx->state[4] += e;
      	ctx->state[5] += f;
      	ctx->state[6] += g;
      	ctx->state[7] += h;
      }
      
      void sha256_init(SHA256_CTX *ctx) {
      	ctx->datalen = 0;
      	ctx->bitlen = 0;
      	ctx->state[0] = 0x6a09e667;
      	ctx->state[1] = 0xbb67ae85;
      	ctx->state[2] = 0x3c6ef372;
      	ctx->state[3] = 0xa54ff53a;
      	ctx->state[4] = 0x510e527f;
      	ctx->state[5] = 0x9b05688c;
      	ctx->state[6] = 0x1f83d9ab;
      	ctx->state[7] = 0x5be0cd19;
      }
      
      void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len) {
      	for (size_t i = 0; i < len; ++i) {
      		ctx->data[ctx->datalen] = data[i];
      		ctx->datalen++;
      		if (ctx->datalen == 64) {
      			sha256_transform(ctx, ctx->data);
      			ctx->bitlen += 512;
      			ctx->datalen = 0;
      		}
      	}
      }
      
      void sha256_final(SHA256_CTX *ctx, BYTE hash[]) {
      	WORD32 i = ctx->datalen;
      
      	if (ctx->datalen < 56) {
      		ctx->data[i++] = 0x80;
      		while (i < 56)
      			ctx->data[i++] = 0x00;
      	} else {
      		ctx->data[i++] = 0x80;
      		while (i < 64)
      			ctx->data[i++] = 0x00;
      		sha256_transform(ctx, ctx->data);
      		memset(ctx->data, 0, 56);
      	}
      
      	ctx->bitlen += ctx->datalen * 8;
      	ctx->data[63] = ctx->bitlen;
      	ctx->data[62] = ctx->bitlen >> 8;
      	ctx->data[61] = ctx->bitlen >> 16;
      	ctx->data[60] = ctx->bitlen >> 24;
      	ctx->data[59] = ctx->bitlen >> 32;
      	ctx->data[58] = ctx->bitlen >> 40;
      	ctx->data[57] = ctx->bitlen >> 48;
      	ctx->data[56] = ctx->bitlen >> 56;
      	sha256_transform(ctx, ctx->data);
      
      	for (i = 0; i < 4; ++i) {
      		hash[i]      = (ctx->state[0] >> (24 - i * 8)) & 0xff;
      		hash[i + 4]  = (ctx->state[1] >> (24 - i * 8)) & 0xff;
      		hash[i + 8]  = (ctx->state[2] >> (24 - i * 8)) & 0xff;
      		hash[i + 12] = (ctx->state[3] >> (24 - i * 8)) & 0xff;
      		hash[i + 16] = (ctx->state[4] >> (24 - i * 8)) & 0xff;
      		hash[i + 20] = (ctx->state[5] >> (24 - i * 8)) & 0xff;
      		hash[i + 24] = (ctx->state[6] >> (24 - i * 8)) & 0xff;
      		hash[i + 28] = (ctx->state[7] >> (24 - i * 8)) & 0xff;
      	}
      }
      
      string sha256(const string &str) {
      	BYTE hash[32];
      	SHA256_CTX ctx;
      	sha256_init(&ctx);
      	sha256_update(&ctx, (const BYTE*)str.c_str(), str.length());
      	sha256_final(&ctx, hash);
      
      	char res[65];
      	for (int i = 0; i < 32; i++)
      		sprintf(res + i * 2, "%02x", hash[i]);
      	return string(res);
      }
      
      struct Item {
      	string name;
      	int effect;
      	int price;
      };
      
      struct Pet {
      	string name;
      	int attackBonus;
      	bool unlocked;
      };
      
      struct Quest {
      	string desc;
      	int target;
      	int current;
      	int rewardMat;
      	int rewardCoin;
      	bool completed;
      };
      
      void slowPrint(const string& text, int ms = 30) {
      	for (char c : text) {
      		cout << c;
      		Sleep(ms);
      	}
      	cout << endl;
      }
      
      void clear() {
      	system("cls");
      }
      
      int main() {
      	srand((unsigned)time(NULL));
      
      	int hp = 130;
      	int maxHp = 130;
      	int attack = 14;
      	int materials = 0;
      	int coins = 5;
      	int equipLevel = 1;
      	int mapLevel = 1;
      	bool shield = false;
      	bool fireUnlocked = false;
      	bool critUnlocked = false;
      	bool haveSecretKey = false;
      	bool godMode = false;
      
      	Pet pet = {"皮卡虾", 3, false};
      	string maps[] = {"校园大厅","美食街","虾夷堡垒","最终巢穴","秘密神殿"};
      
      	int boss1Hp=220,boss1Atk=19,boss2Hp=310,boss2Atk=25,boss3Hp=420,boss3Atk=31,boss4Hp=580,boss4Atk=38;
      	bool phase2 = false;
      
      	string mobNames[]= {"小虾米","麻辣虾","香酥虾","虾兵","虾将","激光虾"};
      	int mobHps[]= {28,42,58,76,92,108};
      	int mobAtks[]= {5,8,11,14,17,20};
      
      	vector<Quest> quests= {{"击败3只怪物",3,0,12,8,false},{"升级装备至2级",2,0,15,10,false},{"击败1号BOSS",1,0,25,18,false},{"解锁宠物",1,0,30,22,false}};
      	vector<Item> shop= {{"生命药水",45,9},{"攻击强化",9,16},{"护盾",1,13},{"火球术",0,26},{"暴击术",0,32},{"宠物蛋",0,38},{"秘钥",0,55}};
      
      	clear();
      	slowPrint("========================================",30);
      	slowPrint("邪恶香酥虾 - 终极版",35);
      	slowPrint("========================================",30);
      	Sleep(1000);
      	slowPrint("故事:邪恶的虾族入侵了学校!");
      	Sleep(1200);
      	slowPrint("你是拯救世界的英雄!");
      	Sleep(1500);
      
      	while(true) {
      		clear();
      		slowPrint("========================================");
      		cout << "当前地图:" << maps[mapLevel-1] << endl;
      		cout << "生命:" << hp << "/" << maxHp << " 攻击:" << attack << " 装备:等级" << equipLevel << endl;
      		cout << "材料:" << materials << " 金币:" << coins << endl;
      		cout << "宠物:" << (pet.unlocked ? pet.name + " (攻击 +"+to_string(pet.attackBonus)+")" : "未解锁") << endl;
      		cout << "秘钥:" << (haveSecretKey ? "已获得" : "未获得") << " 无敌模式:" << (godMode ? "开启" : "关闭") << endl;
      		slowPrint("========================================");
      
      		cout << "\n任务:" << endl;
      		for(auto& q:quests) if(!q.completed) cout << "- " << q.desc << " (" << q.current << "/" << q.target << ")" << endl;
      
      		cout << endl;
      		slowPrint("1.狩猎 2.采集 3.升级 4.治疗 5.商店");
      		slowPrint("6.地图 7.BOSS 8.宠物 9.秘密 0.退出");
      		cout << endl;
      		cout << "========================================" << endl;
      		cout << "      输入密码开启作弊" << endl;
      		cout << "========================================" << endl;
      		cout << "\n请选择:";
      
      		int choice;
      		cin >> choice;
      
      		// 输入 999 打开作弊菜单
      		if(choice == 999) {
      			clear();
      			cout << "请输入作弊密码:";
      			string pw;
      			cin >> pw;
      			string h = sha256(pw);
      			if(h == "4c55e9959a2c22155f7d555dca3b97e85abf8f72041eac101f8c2cae4e5e762e") {
      				clear();
      				slowPrint("========================================",25);
      				slowPrint("          作弊菜单",25);
      				slowPrint("========================================",25);
      				cout << endl;
      				slowPrint("1.无敌模式 2.材料无限 3.金币无限 4.最强属性 5.全解锁 6.满血 7.返回");
      				cout << "请选择:";
      				int hack;
      				cin >> hack;
      				if(hack==1) {
      					godMode=true;
      					slowPrint("无敌模式已开启!");
      					Sleep(1000);
      				}
      				if(hack==2) {
      					materials+=99999;
      					slowPrint("材料已最大化!");
      					Sleep(800);
      				}
      				if(hack==3) {
      					coins+=99999;
      					slowPrint("金币已最大化!");
      					Sleep(800);
      				}
      				if(hack==4) {
      					equipLevel=6;
      					attack=999;
      					maxHp=999;
      					fireUnlocked=true;
      					critUnlocked=true;
      					slowPrint("属性已拉满!");
      					Sleep(1200);
      				}
      				if(hack==5) {
      					pet.unlocked=true;
      					haveSecretKey=true;
      					slowPrint("全部解锁!");
      					Sleep(1200);
      				}
      				if(hack==6) {
      					hp=maxHp;
      					shield=true;
      					slowPrint("生命值已满!");
      					Sleep(800);
      				}
      			} else {
      				slowPrint("密码错误!");
      				Sleep(1000);
      			}
      			continue;
      		}
      
      		if(choice==1) {
      			clear();
      			int idx=rand()%6;
      			string name=mobNames[idx];
      			int mHp=mobHps[idx]+mapLevel*12;
      			int mAtk=mobAtks[idx]+mapLevel*4;
      			slowPrint("遭遇:"+name);
      			Sleep(600);
      			int pHp=hp;
      			while(true) {
      				int bonus=pet.unlocked?pet.attackBonus:0;
      				int crit=(critUnlocked&&rand()%100<35)?2:1;
      				int dmg=(rand()%5+attack+bonus)*crit;
      				mHp-=dmg;
      				cout << "你造成了 " << dmg << " 点伤害!怪物生命:" << mHp << endl;
      				Sleep(400);
      				if(mHp<=0) {
      					slowPrint("胜利!");
      					materials+=4+mapLevel;
      					coins+=3+rand()%3;
      					for(auto& q:quests) if(q.desc=="击败3只怪物") q.current++;
      					Sleep(1000);
      					break;
      				}
      				if(!godMode) {
      					if(shield) {
      						slowPrint("护盾抵挡了伤害!");
      						shield=false;
      					} else {
      						int tDmg=rand()%4+mAtk;
      						pHp-=tDmg;
      						cout << name << "攻击你,造成 " << tDmg << " 点伤害!生命:" << pHp << endl;
      						if(pHp<=0) {
      							slowPrint("你输了!");
      							return 0;
      						}
      					}
      				} else slowPrint("无敌模式:免疫伤害!");
      				Sleep(400);
      			}
      			if(!godMode) hp=pHp;
      		}
      
      		else if(choice==2) {
      			clear();
      			slowPrint("采集中...");
      			Sleep(600);
      			materials+=rand()%6+5;
      			cout << "材料:" << materials << endl;
      			Sleep(800);
      		} else if(choice==3) {
      			clear();
      			if(equipLevel>=6) {
      				slowPrint("已达最高等级!");
      				Sleep(800);
      				continue;
      			}
      			int need=10+equipLevel*7;
      			if(materials<need) {
      				cout << "需要 " << need << " 个材料!" << endl;
      				Sleep(800);
      				continue;
      			}
      			materials-=need;
      			equipLevel++;
      			attack+=5;
      			maxHp+=12;
      			hp=maxHp;
      			slowPrint("升级成功!");
      			for(auto& q:quests) if(q.desc=="升级装备至2级"&&equipLevel>=2) q.current=2;
      			Sleep(800);
      		} else if(choice==4) {
      			clear();
      			if(materials<5) {
      				slowPrint("需要5个材料!");
      				Sleep(800);
      				continue;
      			}
      			materials-=5;
      			hp=min(maxHp,hp+40);
      			cout << "治疗完成!生命:" << hp << endl;
      			Sleep(800);
      		} else if(choice==5) {
      			clear();
      			slowPrint("===== 商店 =====");
      			for(int i=0; i<shop.size(); i++) cout << i+1 << ". " << shop[i].name << " 价格:" << shop[i].price << " 金币" << endl;
      			cout << "金币:" << coins << "\n购买(0返回):";
      			int c;
      			cin>>c;
      			if(c==0) continue;
      			c--;
      			if(coins<shop[c].price) {
      				slowPrint("金币不足!");
      				Sleep(800);
      				continue;
      			}
      			coins-=shop[c].price;
      			if(c==0) hp=min(maxHp,hp+shop[c].effect);
      			if(c==1) attack+=shop[c].effect;
      			if(c==2) shield=true;
      			if(c==3) fireUnlocked=true;
      			if(c==4) critUnlocked=true;
      			if(c==5) {
      				pet.unlocked=true;
      				quests[3].current=1;
      			}
      			if(c==6) haveSecretKey=true;
      			slowPrint("购买成功!");
      			Sleep(800);
      		} else if(choice==6) {
      			clear();
      			if(mapLevel>=4) {
      				slowPrint("已到达最终地图!");
      				Sleep(800);
      				continue;
      			}
      			mapLevel++;
      			slowPrint("进入:"+maps[mapLevel-1]);
      			Sleep(1000);
      		} else if(choice==7) {
      			clear();
      			string bn;
      			int bh,ba;
      			if(mapLevel==1) {
      				bn="麻辣虾首领";
      				bh=boss1Hp;
      				ba=boss1Atk;
      			} else if(mapLevel==2) {
      				bn="香酥虾将军";
      				bh=boss2Hp;
      				ba=boss2Atk;
      			} else if(mapLevel==3) {
      				bn="虾夷守护者";
      				bh=boss3Hp;
      				ba=boss3Atk;
      			} else {
      				bn="邪恶香酥虾";
      				bh=boss4Hp;
      				ba=boss4Atk;
      			}
      			slowPrint("BOSS战:"+bn);
      			Sleep(1000);
      			int pHp=hp;
      			while(true) {
      				int dmg=rand()%6+attack+(pet.unlocked?pet.attackBonus:0);
      				if(fireUnlocked) dmg+=rand()%12+18;
      				if(critUnlocked&&rand()%100<35) dmg*=2;
      				bh-=dmg;				
      				cout << "你对BOSS造成 " << dmg << " 点伤害!生命:" << bh << endl;
      				Sleep(500);
      				if(mapLevel==4&&bh<=0&&!phase2) {
      					slowPrint("BOSS进入狂暴状态!第二阶段!");
      					phase2=true;
      					bh=320;
      					ba+=12;
      					Sleep(1500);
      					continue;
      				}
      				if(bh<=0) {
      					slowPrint("BOSS被击败!");
      					materials+=40+mapLevel*15;
      					coins+=30+mapLevel*12;
      					if(mapLevel==1) quests[2].current=1;
      					if(mapLevel==4) {
      						slowPrint("你赢了!");
      						Sleep(2000);
      						return 0;
      					}
      					Sleep(1500);
      					break;
      				}
      				if(!godMode) {
      					if(shield) {
      						slowPrint("护盾抵挡了攻击!");
      						shield=false;
      					} else {
      						int td=rand()%7+ba;
      						pHp-=td;
      						cout << "BOSS攻击你,造成 " << td << " 点伤害!生命:" << pHp << endl;
      						if(pHp<=0) {
      							slowPrint("你输了!");
      							return 0;
      						}
      					}
      				} else slowPrint("无敌模式生效!");
      				Sleep(500);
      			}
      			if(!godMode) hp=pHp;
      		} else if(choice==8) {
      			clear();
      			if(!pet.unlocked) {
      				slowPrint("宠物未解锁!");
      				Sleep(1200);
      				continue;
      			}
      			slowPrint("宠物:"+pet.name);
      			cout << "攻击 +" << pet.attackBonus << endl;
      			Sleep(1000);
      		} else if(choice==9&&haveSecretKey) {
      			clear();
      			slowPrint("秘密关卡:黄金虾神");
      			Sleep(1000);
      			int gh=420,ph=hp;
      			while(true) {
      				int dmg=rand()%10+attack+(pet.unlocked?pet.attackBonus:0);
      				if(critUnlocked&&rand()%100<50) dmg*=2;
      				gh-=dmg;
      				cout << "造成 " << dmg << " 点伤害!虾神生命:" << gh << endl;
      				Sleep(400);
      				if(gh<=0) {
      					slowPrint("秘密关卡通关!获得奖励!");
      					materials+=80;
      					coins+=70;
      					attack+=15;
      					maxHp+=30;
      					haveSecretKey=false;
      					Sleep(1800);
      					break;
      				}
      				if(!godMode) {
      					int td=rand()%8+24;
      					ph-=td;
      					if(ph<=0) {
      						slowPrint("挑战失败!");
      						return 0;
      					}
      				}
      				Sleep(400);
      			}
      			if(!godMode) hp=ph;
      		}
      		for(auto& q:quests) if(q.current>=q.target&&!q.completed) {
      				q.completed=true;
      				materials+=q.rewardMat;
      				coins+=q.rewardCoin;
      				slowPrint("任务完成!");
      				Sleep(1000);
      			}
      		else if(choice==0) {
      			clear();
      			slowPrint("感谢游玩!");
      			Sleep(1500);
      			break;
      		}
      	}
      	return 0;
      }
      
      • @ 2026-4-4 11:48:18

        @xbr9276(小柏然),你写好开头了吗(快更新)?1.1.1~1.3.19汝来更新,剩余的me来更新...

        • 1

        信息

        ID
        940
        时间
        ms
        内存
        MiB
        难度
        8
        标签
        递交数
        135
        已通过
        25
        上传者