拒绝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