- 分享
小游戏1.1.6 正式版
- @ 2026-4-7 16:23:32
拒绝AI,纯手写
#include <bits/stdc++.h>
#include <fstream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <algorithm>
#include <sstream>
#include <windows.h>
#include <vector>
#include <limits>
#include <cstdlib>
using namespace std;
int shan;
//———————战斗结构体————————
struct zhan{
int id;
string name;
int shang;
};
vector<int> hui1;
//srand((unsigned int)time(NULL));
//rand用法 int 变量=a + rand() % (b - a + 1)
vector<zhan> wuqi(1000009);//战斗数组
//----------- 战斗系统 ------------
void zhand(int x,int s2){
srand((unsigned int)time(NULL));
cout<<"*是否战斗(y/n)\n";
char sds;
cin>>sds;
if(sds=='n') return ;
else{
cout<<"*请选择武器\n";
int len=wuqi.size();
for(int i=1;i<=3;i++){
cout<<wuqi[i].id<<"."<<wuqi[i].name<<" ";
}
int nsd;
cin>>nsd;
cout<<"你选择了<"<<wuqi[nsd].name<<">伤害:"<<wuqi[nsd].shang;
string scs1=wuqi[nsd].name;
int scs2=wuqi[nsd].shang;
cout<<"\n";
cout<<"*开始战斗...";
int wer=( rand() % (3 - 1 + 1))+1;
int fool=0;
if(wer==1){
cout<<"\n*你先发起攻击..";
fool=1;
}
else{
cout<<"\n*"<<s2<<"先发起进攻击..";
fool=2;
}
if(fool=1){
}
else{
switch(s2){
case 4:
int xue=180;
cout<<"*对方使用了骨刀\n";
int forl=( rand() % (7 - 1 + 1))+1;
if(forl>=6){
}
else{
cout<<"*你触发了'闪避'";
cout<<"<闪避技能熟练度+2>";
shan+=2;
cout<<"*你躲开了对方的攻击\n";
cout<<" 是否还击(y/n/27f*^%*n)";
char apple;
cin>>apple;
if(apple=='y'){
cout<<"*你选择了'还击'\n";
cout<<"*你打出"<<scs2<<"点伤害\n";
cout<<"*对方受伤了\n";
//
xue-=scs2;
//
}
else{
}
}
break;
case 5:
break;
case 1:
break;
case 2:
break;
}
}
}
}
void dy1(int x){
srand((unsigned int)time(NULL));
cout<<"开始游戏 (y/n)";
char cdy;
cin>>cdy;
if(cdy=='n') return ;
for(int i=1;i<=2;i++) {
cout<<"加载中.";
Sleep(200);
system("cls"); // 清屏
cout<<"加载中..";
Sleep(210);
system("cls"); // 清屏
cout<<"加载中...";
Sleep(220);
system("cls"); // 清屏
}
cout<<"*你出现";
Sleep(80);
cout<<"在一个";
Sleep(83);
cout<<"阴森的走廊\n";
int scd;
cout<<"*你现在有两种选择..\n";
cout<<" 1.向前走\n";
cout<<" 2.推开旁边的房门\n";
cin>>scd;
if(scd==2){
cout<<"*你没有钥匙...dasdfwe^&$dh\n";
while(scd==2){
cout<<"*你现在有两种选择..\n";
cout<<" 1.向前走\n";
cout<<" 2.推开旁边的房门\n";
cin>>scd;
if(scd==2){
system("cls"); // 清屏
cout<<"*你没有钥匙...\n";
}
}
}
cout<<"*你向前走去...\n";
cout<<" 1.靠墙走\n";
cout<<" 2.大摇大摆的走过去\n";
int kan;
cin>>kan;
if(kan==2){
cout<<"You DIED\n\t死因:掉进陷阱了\n";
char hui;
cout<<"是否回档?(y/y)";
cin>>hui;
dy1(1);
}
cout<<"*你走过来了,你一阵后怕...\n";
cout<<"*你遇到了";
// random_device run;
// mt19937 gen(run());
// uniform_int_distribution<>dist(1, 5);//改dist(1, 3)中的数
// int r=dist(gen);
int r=(rand() % (5-1+1))+1;
int fl1=0;
int fl2=0;
string s1;
switch(r){
case 1:
cout<<"大剑骷髅...\n";
cout<<"危险程度:*****";
fl1=1;
s1="大剑骷髅";
break;
case 2:
cout<<"小型史莱姆\n";
cout<<"*无危险度\n";
char xun;
cout<<"*是否驯服(y/n)";
cin>>xun;
fl1=2;
if(xun=='n'){
cout<<"*你离开了...\n";
fl1=2;
}
else if(xun=='y'){
int r1=( rand() % (6 - 1 + 1))+1;
if(r1>=3){
cout<<"*驯服成功!\n";
}
else{
cout<<"*驯服失败!\n";
}
}
break;
case 3:
cout<<"*僵尸骑兵\n";
cout<<"*危险等级:***\n";
fl1=3;
s1="僵尸骑兵";
break;
case 4:
cout<<"*sans\n";
cout<<"*危险等级:********\n";
fl1=4;
s1="sans";
break;
case 5:
cout<<"*Omega\n";
cout<<"*危险等级:****\n";
fl1=5;
s1="Omega";
break;
break;
}
if(fl1!=2){
zhand(1,fl1);//战斗
}
Sleep(28347923);
}
//void huidang(int x){
// cout<<"正在回档...9%^&*3h";
// Sleep(3000);
//// goto start;
//}
int main() {
srand((unsigned int)time(NULL));
wuqi[1].name="木棒";
wuqi[1].id=1;
wuqi[1].shang=10;
wuqi[2].name="燧石小刀";
wuqi[2].id=2;
wuqi[2].shang=13;
wuqi[3].name="石头";
wuqi[3].id=3;
wuqi[3].shang=8;
// for(int )
cout<<"你想干甚么?";
int dy=1;
for(int i=1;;i++){
cout<<"w/s键选择\n";
char ws;
cin>>ws;
if(ws=='s'&&dy<2) dy++;
if(ws=='w'&&dy>1) dy--;
system("cls"); // 清屏
if(dy==1){
cout<<">传说之下<\n";
cout<<"确定吗?(y/n)\n";
cout<<" 我的世界(敬请期待) \n";
cout<<" (去投稿吧) \n";
char sed;
cin>>sed;
if(sed=='y'){
dy1(1);
system("cls"); // 清屏
}
}
if(dy==2){
cout<<" 传说之下 \n";
cout<<">我的世界(敬请期待)<\n";
cout<<" (去投稿吧) \n";
}
}
return 0;
}
再次更新了战斗系统
额外更新了一些东西
修了一些BUG
<作者更新有点慢,请谅解>
1 条评论
-
张柏然 @ 2026-4-7 20:29:42已修改谁能运行谁是神 ( 无任何语法错误!!!)
#include <iostream> #include <fstream> #include <string> #include <cstdlib> #include <ctime> #include <iomanip> #include <algorithm> #include <sstream> #include <windows.h> #include <vector> #include <limits> #include <random> #include <chrono> using namespace std; // 闪避熟练度 int shan; // 战斗结构体 (C++23 初始化风格) struct zhan { int id{}; string name; int shang{}; }; vector<int> hui1; vector<zhan> wuqi(1000009); inline int randint(int min_val, int max_val) { static random_device rd; static mt19937_64 rng{ rd() ^ static_cast<unsigned long long>(chrono::steady_clock::now().time_since_epoch().count()) }; return uniform_int_distribution{ min_val, max_val }(rng); } //----------- 战斗系统 ------------ void zhand(int x, int s2) { cout << "*是否战斗(y/n)\n"; char sds; cin >> sds; if (sds == 'n') return; cout << "*请选择武器\n"; for (int i = 1; i <= 3; i++) { cout << wuqi[i].id << "." << wuqi[i].name << " "; } int nsd; cin >> nsd; cout << "你选择了<" << wuqi[nsd].name << ">伤害:" << wuqi[nsd].shang << "\n"; string scs1 = wuqi[nsd].name; int scs2 = wuqi[nsd].shang; cout << "*开始战斗..."; int wer = randint(1, 2); int fool = 0; if (wer == 1) { cout << "\n*你先发起攻击.."; fool = 1; } else { cout << "\n*" << s2 << "先发起进攻击.."; fool = 2; } if (fool == 1) { } else { switch (s2) { case 4: { int xue = 180; cout << "*对方使用了骨刀\n"; int forl = randint(1, 7); if (forl >= 6) { } else { cout << "*你触发了'闪避'"; cout << "<闪避技能熟练度+2>"; shan += 2; cout << "*你躲开了对方的攻击\n"; cout << " 是否还击(y/n/27f*^%*n)"; char apple; cin >> apple; if (apple == 'y') { cout << "*你选择了'还击'\n"; cout << "*你打出" << scs2 << "点伤害\n"; cout << "*对方受伤了\n"; xue -= scs2; } } break; } case 5: break; case 1: break; case 2: break; } } } //----------- 游戏主流程 ------------ void dy1(int x) { cout << "开始游戏 (y/n)"; char cdy; cin >> cdy; if (cdy == 'n') return; for (int i = 1; i <= 2; i++) { cout << "加载中."; Sleep(200); system("cls"); cout << "加载中.."; Sleep(210); system("cls"); cout << "加载中..."; Sleep(220); system("cls"); } cout << "*你出现"; Sleep(80); cout << "在一个"; Sleep(83); cout << "阴森的走廊\n"; int scd; cout << "*你现在有两种选择..\n"; cout << " 1.向前走\n"; cout << " 2.推开旁边的房门\n"; cin >> scd; if (scd == 2) { cout << "*你没有钥匙...dasdfwe^&$dh\n"; while (scd == 2) { cout << "*你现在有两种选择..\n"; cout << " 1.向前走\n"; cout << " 2.推开旁边的房门\n"; cin >> scd; if (scd == 2) { system("cls"); cout << "*你没有钥匙...\n"; } } } cout << "*你向前走去...\n"; cout << " 1.靠墙走\n"; cout << " 2.大摇大摆的走过去\n"; int kan; cin >> kan; if (kan == 2) { cout << "You DIED\n\t死因:掉进陷阱了\n"; char hui; cout << "是否回档?(y/y)"; cin >> hui; dy1(1); } cout << "*你走过来了,你一阵后怕...\n"; cout << "*你遇到了"; int r = randint(1, 5); int fl1 = 0; int fl2 = 0; string s1; switch (r) { case 1: cout << "大剑骷髅...\n"; cout << "危险程度:*****"; fl1 = 1; s1 = "大剑骷髅"; break; case 2: cout << "小型史莱姆\n"; cout << "*无危险度\n"; char xun; cout << "*是否驯服(y/n)"; cin >> xun; fl1 = 2; if (xun == 'n') { cout << "*你离开了...\n"; } else if (xun == 'y') { int r1 = randint(1, 6); if (r1 >= 3) { cout << "*驯服成功!\n"; } else { cout << "*驯服失败!\n"; } } break; case 3: cout << "*僵尸骑兵\n"; cout << "*危险等级:***\n"; fl1 = 3; s1 = "僵尸骑兵"; break; case 4: cout << "*sans\n"; cout << "*危险等级:********\n"; fl1 = 4; s1 = "sans"; break; case 5: cout << "*Omega\n"; cout << "*危险等级:****\n"; fl1 = 5; s1 = "Omega"; break; } if (fl1 != 2) { zhand(1, fl1); } Sleep(3000); } int main() { // 初始化武器 wuqi[1] = { 1, "木棒", 10 }; wuqi[2] = { 2, "燧石小刀", 13 }; wuqi[3] = { 3, "石头", 8 }; cout << "你想干甚么?\n"; int dy = 1; while (true) { cout << "w/s键选择\n"; char ws; cin >> ws; if (ws == 's' && dy < 2) dy++; if (ws == 'w' && dy > 1) dy--; system("cls"); if (dy == 1) { cout << ">传说之下<\n"; cout << "确定吗?(y/n)\n"; cout << " 我的世界(敬请期待) \n"; cout << " (去投稿吧) \n"; char sed; cin >> sed; if (sed == 'y') { dy1(1); system("cls"); } } if (dy == 2) { cout << " 传说之下 \n"; cout << ">我的世界(敬请期待)<\n"; cout << " (去投稿吧) \n"; } } }生成开始于 20:29... 1>------ 已启动生成: 项目: Game, 配置: Debug x64 ------ 1> Game.cpp 1> Game.vcxproj -> D:\C++代码\Game\x64\Debug\Game.exe ========== 生成: 1 成功,0 失败,0 最新,0 已跳过 ========== ========== 生成 于 20:30 完成,耗时 05.042 秒 ==========
- 1