赌狗人生

#include<iomanip>
#include <stdio.h>
#include <iostream>
#include <cstdio>
#include <unistd.h>
#include <limits>
#include <cstdlib>
#include<bits/stdc++.h>
#include<cmath>
#include<windows.h>
using namespace std;
//GetAsyncKeyState()
string b="200";
namespace sbjc {
	void gs(long long h, long long l, string z) {
		for (long long i = 1; i <= h; i++)
			cout << "\n";
		for (long long i = 1; i <= l; i++)
			cout << " ";
		cout << z;
		return;
	}
	struct hl {
		long long h,l;
	};
	bool ax(long long key) {
		return (GetKeyState(key) < 0) ? (true) : (false);
	}
	typedef void (*hs)();
	struct sb {
		int x1,x2,y1,y2;
		string z;
		hs h;
	};
	bool axj(long long key) {
		return (GetKeyState(key) < 0) ? (true) : (false);
	}
	void srwj() {
		int saved_fd = dup(STDIN_FILENO);
		if (saved_fd == -1) {
			cerr << "保存 stdin 失败\n";
			while(1) {}
		}
		if (freopen("dgrs.txt", "r", stdin) == NULL) {
			cerr << "无法打开 dgrs.txt\n";
			close(saved_fd);
			while(1) {}
		}
		int value;
		cin >> b;
		cin.clear();
		int c;
		while ((c = getchar()) != '\n' && c != EOF);
		if (dup2(saved_fd, STDIN_FILENO) == -1) {
			cerr << "恢复 stdin 失败\n";
			close(saved_fd);
			while(1) {}
		}
		close(saved_fd);
		cin.clear();
		cin.sync();
		cout<<"读档成功";
		Sleep(1000);
		system("cls");
	}
	void drwj() {
		int saved_stdout = dup(STDOUT_FILENO);
		if (saved_stdout == -1) {
			perror("dup failed");
			while(1) {}
		}
		if (freopen("dgrs.txt", "w", stdout) == NULL) {
			perror("freopen failed");
			while(1) {}
		}
		cout<<b;
		fflush(stdout);
		if (dup2(saved_stdout, STDOUT_FILENO) == -1) {
			perror("dup2 failed");
			while(1) {}
		}
		close(saved_stdout);
	}
	hl wz(bool x = 1, bool n = 1) {
		HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
		HWND h = GetForegroundWindow();
		CONSOLE_FONT_INFO consoleCurrentFont;
		hl hl;
		POINT p;
		if (x) {
			GetCursorPos(&p);
			ScreenToClient(h, &p);
		} else {
			GetCursorPos(&p);
		}
		if (n) {
			GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont);
			p.x /= consoleCurrentFont.dwFontSize.X;
			p.y /= consoleCurrentFont.dwFontSize.Y;
		}
		hl.h = p.y + 1;
		hl.l = p.x + 1;
		return hl;
	}
	void bj() {
		HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
		DWORD mode;
		GetConsoleMode(hStdin, &mode);
		mode &= ~ENABLE_QUICK_EDIT_MODE;
		SetConsoleMode(hStdin, mode);
		return;
	}
	void ycgb() {
		CONSOLE_CURSOR_INFO cursor;
		cursor.bVisible = FALSE;
		cursor.dwSize = sizeof(cursor);
		HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorInfo(handle, &cursor);
		return;
	}
	void ydgb(long long h, long long l) {
		COORD pos = { l - 1,h - 1 };
		HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorPosition(hOut, pos);
		return;
	}
	string aa() {
		if(GetAsyncKeyState('1'))return "1";
		if(GetAsyncKeyState('2'))return "2";
		if(GetAsyncKeyState('3'))return "3";
		if(GetAsyncKeyState('4'))return "4";
		if(GetAsyncKeyState('5'))return "5";
		if(GetAsyncKeyState('6'))return "6";
		if(GetAsyncKeyState('7'))return "7";
		if(GetAsyncKeyState('8'))return "8";
		if(GetAsyncKeyState('9'))return "9";
		if(GetAsyncKeyState('0'))return "0";
		if(GetAsyncKeyState(VK_BACK))return "b";
		if(GetAsyncKeyState(13))return "a";
		return "";
	}
}
using namespace sbjc;

void de1(int x) {
	int y=0;
	switch (x) {
		case 1:
			y=15;
			break;
		case 2:
			y=10;
			break;
		case 3:
			y=9;
			break;
		case 4:
			y=13;
			break;
		case 5:
			y=14;
			break;
		case 6:
			y=12;
			break;
	}
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),y);
}
void de(int x) {
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
bool cmp(string A,string B) {
	if(A.size()!=B.size()) return A.size()>B.size();
	for(int i=A.size()-1; i>=0; i--) {
		if(A[i]!=B[i]) {
			return A[i]>B[i];
		}
	}
	return true;
}
bool cmp(vector<int>A,vector<int>B) {
	if(A.size()!=B.size()) return A.size()>B.size();
	for(int i=A.size()-1; i>=0; i--) {
		if(A[i]!=B[i]) {
			return A[i]>B[i];
		}
	}
	return true;
}
vector <int> sub(vector<int>A,vector<int>B) {
	vector<int>C;
	for(int i=0,t=0; i<A.size(); i++) {
		t=A[i]-t;
		if(i<B.size()) t-=B[i];
		C.push_back((t+10)%10);
		if(t<0) t=1;
		else t=0;
	}
	while(C.size()>1&&C.back()==0) C.pop_back();
	return C;
}
string GJD_JF2(string x,string y) {
	vector<int>A,B;
	for(int i=x.size()-1; i>=0; i--) A.push_back(x[i]-'0');
	for(int i=y.size()-1; i>=0; i--) B.push_back(y[i]-'0');
	vector<int> C;
	if(cmp(A,B)) {
		C=sub(A,B);
	} else {
		C=sub(B,A);
		cout<<'-';
	}
	string aa="";
	for(int i=C.size()-1; i>=0; i--)aa+=C[i]+'0';
	return aa;
}
long long int i,j,k,z,xz,gb=1,xz1,x1=95,x2=85,x3=80,x4=50,d;

string GJD_JF1(string x,string y) {
	vector<int>a(1000000,0),b(1000000,0);
	int a1=x.size(),a2=y.size();
	long long i;
	for(i=0; i<a1; ++i)a[a1-i]=x[i]-'0';
	for(i=0; i<a2; ++i)b[a2-i]=y[i]-'0';
	int a3=max(a1,a2);
	string aa,bb;
	for(i=1; i<=a3; ++i) {
		a[i]+=b[i];
		if(a[i]>=10) {
			a[i+1]+=1;
			a[i]%=10;
		}
		aa+=char(a[i]+'0');
		if(i==a3&&a[a3+1]>0)aa+='1';
	}
	string ab="";
	a1=aa.size();
	for(i=0; i<a1; ++i)ab+=aa[a1-i-1];
	return ab;
}
bool aa(string a1,string a2) {
	x3=max(a1.size(),a2.size());
	bool x=false,y=false;
	if(a1.size()>a2.size()) {
		return 1;
	}
	if(a1.size()<a2.size()) {
		return 0;
	}
	for(i=0; i<x3; ++i) {
		if(a1[i]>a2[i]) {
			x=true;
			break;
		}
		if(a1[i]<a2[i]) {
			y=true;
			break;
		}
	}
	if(x==true&&y==false) {
		return 1;
	} else if(y==true&&x==false) {
		return 0;
	} else {
		return 1;
	}
}
void cj() {
	string a1;
	while(1) {
		string s1b="",ll;
		while(1) {
			hl zz=wz(1,1);
			cout<<"G:"<<b<<endl;
			cout<<"输入G币"<<endl;
			if(zz.h==3&&zz.l<=4&&zz.l>=1) {
				ydgb(3,5);
				cout<<"\b\b\b\b";
				de(15);
				cout<<"退出";
				de(240);
				if(axj(VK_LBUTTON)) {
					return;
				}
			} else {
				ydgb(3,5);
				cout<<"\b\b\b\b";
				de(240);
				cout<<"退出";
			}
			if(zz.h==1&&zz.l<=2&&zz.l>=1) {
				ydgb(1,2);
				cout<<"\b\b";
				cout<<"G:";
				de(240);
				if(axj(VK_LBUTTON)) {
					b=GJD_JF1(b,"100");
				}
			} else {
				ydgb(1,2);
				cout<<"\b\b";
				de(240);
				cout<<"G:";
			}
			ydgb(4,1);
			cout<<s1b;
			ll=aa();
			s1b+=ll;
			if(s1b!=""&&s1b[s1b.size()-1]=='a') {
				a1="";
				for(i=1; i<=(s1b.size()<=1 ? 0:s1b.size()-1); ++i) {
					a1+=s1b[i-1];
				}
				s1b=a1;
				break;
			} else if(s1b!=""&&s1b[s1b.size()-1]=='b') {
				a1="";
				for(i=1; i<=(s1b.size()<=1 ? 0:s1b.size()-2); ++i) {
					a1+=s1b[i-1];
				}
				s1b=a1;
			}
			Sleep(80);
			system("cls");
		}
		system("cls");
		srand(time(0));
		int sb1=rand()%100-rand()%100;
		system("cls");
		if(s1b=="0")return;
		if(s1b[0]=='-'||!aa(b,s1b)) {
			for(i=1; i<=1000; ++i) {
				Sleep(1);
				de(rand()%255+1);
				cout<<"sb";
			}
			de1(1);
			return;
		}
		b=GJD_JF2(b,s1b);
		string bs="0";
		for(i=1; i<=10; ++i) {
			cout<<1000-i*100<<"ms";
			Sleep(100);
			system("cls");
		}
		if(sb1>=x1) {
			for(i=1; i<=100; ++i) {
				bs=GJD_JF1(bs,s1b);
			}
			system("color 4C");
			Sleep(1000);
			system("color 0F");
			de1(6);
			cout<<"加"<<bs<<"G"<<endl;
			b=GJD_JF1(b,bs);
		} else if(sb1>=x2) {
			for(i=1; i<=50; ++i) {
				bs=GJD_JF1(bs,s1b);
			}
			system("color 6E");
			Sleep(1000);
			system("color 0F");
			de1(5);
			cout<<"加"<<bs<<"G"<<endl;
			b=GJD_JF1(b,bs);
		} else if(sb1>=x3) {
			for(i=1; i<=10; ++i) {
				bs=GJD_JF1(bs,s1b);
			}
			system("color 5D");
			Sleep(1000);
			system("color 0F");
			de1(4);
			cout<<"加"<<bs<<"G"<<endl;
			b=GJD_JF1(b,bs);
		} else if(sb1>=x4) {
			for(i=1; i<=5; ++i) {
				bs=GJD_JF1(bs,s1b);
			}
			system("color 39");
			Sleep(1000);
			system("color 0F");
			de1(3);
			cout<<"加"<<bs<<"G"<<endl;
			b=GJD_JF1(b,bs);
		} else {
			system("color 7F");
			Sleep(1000);
			system("color 0F");
			cout<<"加0G"<<endl;
		}
		de1(1);
		Sleep(1500);
		system("cls");
	}

}
void yx1() {
	MessageBox(0, "再见!\n\n尸人", "赌狗人生", MB_OK);
}
int main() {
	de(240);
	system("mode con cols=80 lines=30");
	hl zz;
	cout.tie();
	cin.tie();
	ycgb();
	ydgb(1,1);
	bj();
	sb z[10]= {{},{32,40,10,10,"开始抽奖",cj},{34,38,14,14,"读档",srwj},{34,38,18,18,"存档",drwj},{34,38,22,22,"退出",yx1}};
	system("title 赌狗人生");
	while(1) {
		cout<<"G:"<<b;
		zz=wz(1,1);
		gs(5,32,"赌狗人生");
		for(int i=1; i<=4; ++i) {
			if(z[i].x1<=zz.l&&z[i].x2>=zz.l&&z[i].y1<=zz.h&&z[i].y1>=zz.h) {
				gs(4,z[i].x1,"");
				de(15);
				cout<<z[i].z;
				de(240);
				if(axj(VK_LBUTTON)) {
					system("cls");
					z[i].h();
					if(i==3) {
						gs(10,20,"");
						while(1) {
							cout<<"存档成功(请退出游戏重进)";
							//Sleep(1000);
							cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
							return 0;
						}

					}
					if(i==4) {
						return 0;
					}
				}
			} else {
				gs(4,z[i].x1,"");
				cout<<z[i].z;
			}

		}
		Sleep(50);
		system("cls");
	}
	return 0;
}

双人跑酷

#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
using namespace std;
long long int i,j,k,z,xz,gb=1,xz1,x1,x2;
//GetAsyncKeyState()
void de(int x){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
struct wj{
	long long xl;
	long long gj;
	long long wzx;
	long long wzy;
	long long sd;
};
wj rw[5]={{50,10,1,5,1},{50,10,1,5,1},{50,10,1,10,1}};
void cls(HANDLE hConsole) {
    COORD coordScreen = {0, 0};
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hConsole, &csbi);
    DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    // 填充空格字符
    FillConsoleOutputCharacter(hConsole, ' ', dwConSize, coordScreen, &cCharsWritten);
    // 重置文本属性(如颜色)
    FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
    SetConsoleCursorPosition(hConsole, coordScreen);
}
void yd(int x,bool y,int z){
	if(y){
		rw[z].wzx+=x;
	}else{
		rw[z].wzx-=x;
	}
	if(rw[z].wzx>=21)rw[z].wzx=1;
	if(rw[z].wzx<=0)rw[z].wzx=20;
}
void ty(int x,bool y,int z){
	if(y){
		rw[z].wzy+=x;
	}else{
		rw[z].wzy-=x;
	}
	if(rw[z].wzy>=11)rw[z].wzy=1;
	if(rw[z].wzy<=0)rw[z].wzy=10;
}
void hm(){
	srand(time(0));
	while(1){
	if(gb==10){
	xz=rand()%20+1;
	xz1=rand()%10+1;
	x1=rand()%20+1;
	x2=rand()%10+1;		
	}	
	if(gb==10)gb=1;
	for(i=1;i<=10;++i){
		for(j=1;j<=20;++j){
			if(rw[1].wzx==j&&rw[1].wzy==i||rw[2].wzx==j&&rw[2].wzy==i){
				if(rw[1].wzx==j&&rw[1].wzy==i&&rw[1].xl){
				if(j==xz||j==x1)rw[1].xl--;
				if(i==xz1||i==x2)rw[1].xl--;
				de(3);cout<<"0";de(15);	
				}
				else if(rw[2].wzx==j&&rw[2].wzy==i&&rw[2].xl){
				if(j==xz||j==x1)rw[2].xl--;
				if(i==xz1||i==x2)rw[2].xl--;
				de(6);cout<<"0";de(15);
					
				}else{
					if(xz==j||x2==j){
					de(6);cout<<"|";de(15);
				}
				else if(xz1==i||x2==i){
					de(3);cout<<"-";de(15);
				}
				else cout<<" ";
				}
				 
			}else{
				if(xz==j||x2==j){
					de(6);cout<<"|";de(15);
				}
				else if(xz1==i||x2==i){
					de(3);cout<<"-";de(15);
				}
				else cout<<" ";
				
			}
		}
		cout<<"|"<<endl; 
	}
	for(i=1;i<=20;++i){
		cout<<"=";
	}
	if(rw[1].xl<=0||rw[2].xl<=0)return;
	cout<<endl<<"1方血量:"<<rw[1].xl;
	cout<<endl<<"2方血量:"<<rw[2].xl;
	if(GetAsyncKeyState('D'))yd(rw[1].sd,true,1);
	if(GetAsyncKeyState('A'))yd(rw[1].sd,false,1);
	if(GetAsyncKeyState('W'))ty(rw[1].sd,false,1);
	if(GetAsyncKeyState('S'))ty(rw[1].sd,true,1);
	if(GetAsyncKeyState(VK_RIGHT))yd(rw[2].sd,true,2);
	if(GetAsyncKeyState(VK_LEFT))yd(rw[2].sd,false,2);
	if(GetAsyncKeyState(VK_UP))ty(rw[2].sd,false,2);
	if(GetAsyncKeyState(VK_DOWN))ty(rw[2].sd,true,2);
	Sleep(50);
	system("cls"); 
	gb++;	
	}
	
}
int main(){
	system("mode con cols=50 lines=20");
	while(1){
	hm();
		system("cls");
		rw[1]={50,10,1,5,1};
		rw[2]={50,10,1,10,1};
	if(rw[2].xl<=0)cout<<"1方win";
	else cout<<"2方win";
	while(1){
		if(GetAsyncKeyState('1'))break;
	}	
	}
	
		
return 0;
}

迷你跑酷

#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
using namespace std;
long long int i,j,k,z,xz,gb=1,xz1,x1,x2,x3,x4;
//GetAsyncKeyState()
void de(int x){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
struct wj{
	long long xl;
	long long gj;
	long long wzx;
	long long wzy;
	long long sd;
};
wj rw={50,5,5,5,1};
void cls(HANDLE hConsole) {
    COORD coordScreen = {0, 0};
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hConsole, &csbi);
    DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    // 填充空格字符
    FillConsoleOutputCharacter(hConsole, ' ', dwConSize, coordScreen, &cCharsWritten);
    // 重置文本属性(如颜色)
    FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
    SetConsoleCursorPosition(hConsole, coordScreen);
}
void ty(int x){
	if(x>=5)rw.wzy--;
	if(x<=2&&x>=1)rw.wzy++;
	if(x==0)x2=6;
}
void hm(){
	x1=15;
	while(1){
		if(x1==0){
		x1=20;x3++;	
		}
		for(j=1;j<=5;++j){
		for(i=1;i<=20;++i){
			if(rw.wzx==i&&rw.wzy==j){
			cout<<"0";
			if(j==5&&x1==rw.wzx&&j==rw.wzy)return;
			}else if(j==5&&x1==i){
				cout<<"/";
			}else{
				cout<<" ";
			}
		}
		cout<<"|"<<endl;	
		}
		for(i=1;i<=21;++i)cout<<"=";
		cout<<endl;
		cout<<setfill('0')<<setw(5)<<x3<<"分"<<endl;
		if(GetAsyncKeyState(VK_UP)&&x2==0){
		ty(0);	
		}else if(x2>0){
			ty(x2);
			x2--;
		}
		x1--;
		if(x1%2==0)x3++;
		Sleep(100-x4);
		system("cls");
		if(x3%100==0)x4+=5;
	}
}
int main(){
	system("mode con cols=50 lines=20");
	while(1){
	hm();
	system("cls");
	cout<<"你得"<<x3<<"分"<<endl;
	cout<<"你试了"<<endl;
	while(1){
	if(GetAsyncKeyState('1'))break;	
	}
	x3=0;	
	}
	
return 0;
}

迷宫

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
const int MAP_SIZE = 10; // 迷宫大小
const char PLAYER = 'P'; // 玩家标志
const char EXIT = 'E';   // 出口标志
const char TRAP = 'T';  // 陷阱标志
const char TREASURE = '$'; // 宝藏标志
const char EMPTY = '.';  // 空地标志
using namespace std;
int f;
void de(int x){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
// 初始化迷宫
void initializeMaze(char maze[MAP_SIZE][MAP_SIZE], int& playerX, int& playerY) {
    // 设置迷宫初始状态
    for (int i = 0; i < MAP_SIZE; i++) {
        for (int j = 0; j < MAP_SIZE; j++) {
            maze[i][j] = EMPTY;
        }
    }

    // 随机设置玩家位置
    playerX = std::rand() % MAP_SIZE;
    playerY = std::rand() % MAP_SIZE;
    maze[playerX][playerY] = PLAYER;

    // 随机设置出口
    int exitX, exitY;
    do {
        exitX = std::rand() % MAP_SIZE;
        exitY = std::rand() % MAP_SIZE;
    } while (maze[exitX][exitY] != EMPTY);
    maze[exitX][exitY] = EXIT;

    // 随机设置陷阱和宝藏
    for (int i = 0; i < 15; i++) {
        int trapX, trapY;
        do {
            trapX = std::rand() % MAP_SIZE;
            trapY = std::rand() % MAP_SIZE;
        } while (maze[trapX][trapY] != EMPTY);
        maze[trapX][trapY] = TRAP;

        int treasureX, treasureY;
        do {
            treasureX = std::rand() % MAP_SIZE;
            treasureY = std::rand() % MAP_SIZE;
        } while (maze[treasureX][treasureY] != EMPTY);
        maze[treasureX][treasureY] = TREASURE;
    }
}

// 打印迷宫
void printMaze(const char maze[MAP_SIZE][MAP_SIZE]) {
    for (int i = 0; i < MAP_SIZE; i++) {
        for (int j = 0; j < MAP_SIZE; j++) {
        	if(maze[i][j]=='P')de(47);
        	if(maze[i][j]=='.')de(42);
        	if(maze[i][j]=='T')de(44);
        	if(maze[i][j]=='E')de(37);
        	if(maze[i][j]=='$')de(46);
            std::cout << maze[i][j] << " ";
            de(15);
        }
        std::cout << std::endl;
    }
}

// 处理玩家移动
bool movePlayer(char maze[MAP_SIZE][MAP_SIZE], int& playerX, int& playerY, int newX, int newY) {
    if (newX < 0 || newX >= MAP_SIZE || newY < 0 || newY >= MAP_SIZE) {
        std::cout << "你不能移动到那里!超出边界了!\n";
        return false;
    }

    char target = maze[newX][newY];
    if (target == TRAP) {
        system("color 4C");std::cout << "哎呀!你踩到了陷阱!游戏结束!\n";Sleep(500);
        return true; // 游戏结束
    } else if (target == TREASURE) {
        system("color 6");std::cout << "恭喜!你找到了宝藏!\n";f+=5;Sleep(500);
    } else if (target == EXIT) {
        system("color 6E");std::cout << "恭喜!你找到了出口!游戏胜利!\n";Sleep(1500);
        return true; // 游戏结束
    }
    system("cls");
    // 移动玩家
    maze[playerX][playerY] = EMPTY;
    playerX = newX;
    playerY = newY;
    maze[playerX][playerY] = PLAYER;

    return false;
}

int main() {
	system("mode con cols=80 lines=25");
    std::srand(static_cast<unsigned int>(std::time(0))); // 初始化随机种子

    char maze[MAP_SIZE][MAP_SIZE];
    int playerX, playerY;
    initializeMaze(maze, playerX, playerY);

    std::cout << "欢迎来到文字冒险游戏!\n";
    std::cout << "你需要找到出口(E)来赢得游戏。\n";
    std::cout << "小心陷阱(T)!宝藏($)可以给你提示。\n";
    std::cout << "使用命令:上(W)、下(S)、左(A)、右(D)来移动。\n";
system("pause");
    bool gameOver = false;
    while (!gameOver) {
        printMaze(maze);Sleep(100);system("cls");
        std::string input;
        std::cout << "请输入你的移动方向(W/A/S/D):"<<std::endl<<"你得"<<setw(3)<<setfill('0')<<f<<"分"<<endl;

        int newX = playerX;
        int newY = playerY;

        if (GetAsyncKeyState('W')) {
            newX--;f++;
        } else if (GetAsyncKeyState('S')) {
            newX++;f++;
        } else if (GetAsyncKeyState('A')) {
            newY--;f++;
        } else if (GetAsyncKeyState('D')) {
            newY++;f++;
        } else {
            continue;
        }

        gameOver = movePlayer(maze, playerX, playerY, newX, newY);
        
    }

    std::cout << "游戏结束!\n";
    cout<<"你得"<<f<<"分";
    return 0;
}

提瓦特大陆

#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#include<stdio.h>
#include<ctime>
#include<time.h> 
#include<windows.h>
using namespace std;
struct player {
	char name[21];
	int hp;
	int gj;
	int mola;
	int yuanshi; 
	int jingyan; 
}player={"自行",80,5,0,0,1};
struct Guai{
		char name[15];
		char diaoluowu[12];
		int hp;
		int gj;
		int wupin_sizn;
}shilaimu = {"史莱姆","经验",5,1,1},
qqren = {"QQ人","魔拉",10,2,2},
qqren_mix = {"木盾QQ人","魔拉",25,5,3},
qqren_max = {"板斧QQ人","魔拉",20,10,4},
fenglong={"[  风魔龙  ]","魔龙晶石",300,25,5},
guai = {"\0","\0",0,0,0};
struct place{
	int shop1,trees,qiyuan;
} place={1,2,3};
struct jian{
	char name[21];
	char yuansu[21];
	int sh;
}wufeng={"无锋剑","无",3},
qingfeng={"青风剑","风",5},
wuqi={"\0","\0",0};
	void caidan();
	void zhandou();
	void wupin(int);
	int xz;
	int xz1;
	int xz2;
	int xz3;
	int xz4;
	int xz5;
	int xz6;
	int xz7;
	int a;
	int b; 
	int c;
	int place_sizn=5;
	int dengji=1;
	int molong_jingshi=0; 
	int yaocao=0;
	int zhadan=0; 
void SetConsoleColor(WORD color) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, color);
}
int main(){
	for(int i=1;i<=1;i=i+2){
		cout<<"  元素大陆"<<endl;
			cout<<"加载中......."<<endl<<setw(5)<<right<<i<<"%"<<endl;
			for(int j=1;j<=i/10;++j){cout<<"█";}
			Sleep(200+i*10);
			system("cls");
	}
	cout<<"  元素大陆"<<endl;
	cout<<"加载完成!!!"<<endl<<setw(5)<<right<<"100%"<<endl;
	for(int j=1;j<=10;++j){cout<<"█";} 
	system("cls");
	cout<<"--------------------------------------------欢迎来到 [提瓦特大陆] 1.2 测试版-------------------------------------------\n\n\n"<<endl;
	Sleep(2000);
	cout<<"这个大陆是由七个元素之神所创造的,分别是风,雷,岩,草,火,水,冰"<<endl<<endl;
	Sleep(3000);
	cout<<"同样的,这大陆上也有由人类创造的国度"<<endl<<endl;
	Sleep(3000);
	cout<<"好了,旅行者,是时候出发了"<<endl<<endl;
	cout<<"(输入你的名字,20字内)"<<endl;
	cin>>(player.name);
	Sleep(1000);
	system("cls");
	printf("%s,好名字",player.name);
	caidan();
}
void caidan() {
	while(1){
	  Sleep(500);
      system("cls");
		puts("=====================================================================================");
		printf("要做什么?\n\n\n 1,行动 2,背包 3,装备 4,查看状态 5,关于游戏 6,祈愿 7,活动  \n\n\n");
		puts("=====================================================================================");
		cin>>xz;
		switch(xz){
			case 1:
				Sleep(500);
				system("cls");
				puts("=====================================================================================");
		        printf("要去哪里?\n\n\n 1,魔拉商店 2,树林-危险程度★3,风龙废墟-危险程度★★ 4,返回  \n\n\n");
		        puts("=====================================================================================");
		        cin>>xz1;
		        switch(xz1){
		        	case 1:
		        		
		        		place_sizn =place.shop1;
		        		cout<<"魔拉:"<<player.mola<<endl;
		                cout<<"1,无锋剑-500"<<" 2,青风剑-800"<<endl;
		                cout<<"3,药草-100"<<"4,手抛式-蹦蹦炸弹-1000"<<endl;
		                cout<<"0,返回"<<endl;
		                cin>>xz2;
						switch(xz2){
							case 1:
								cout<<"你已装备无锋剑"<<endl;
							    player.mola=player.mola-500;
							    wuqi =wufeng;
							    break;
							case 2:
								cout<<"你已装备青风剑"<<endl;
							    player.mola=player.mola-800;
							    wuqi=qingfeng;
							    break;
							case 3:
								cout<<"你已购买药草"<<endl;
								player.mola=player.mola-100;
								yaocao++;
								break;
							case 4:
								cout<<"你已购买手抛式-蹦蹦炸弹"<<endl;
								player.mola=player.mola-1000;
								zhadan++;
							case 0:
							    break;
						}
						break;
					case 2:
					    zhandou();
						break;
					case 3:
					    zhandou();
					    break;
					case 4:
					    break;
			    
			}
			break;
			case 2:
				Sleep(1000);
	            system("cls");
			    cout<<"圆石:"<<player.yuanshi<<" 魔拉:"<<player.mola<<endl;
				break;
			case 3:
				Sleep(1000);
	            system("cls");
				cout<<"装备:"<<wuqi.name<<endl;
				Sleep(3000);
				break;
			case 4:
		        system("cls");
				printf("hp:%d 攻击:%d\n\n\n",player.hp,player.gj);
				printf("等级:%d 经验:%d\n\n\n",dengji,player.jingyan);
		        Sleep(2000);
		        break;
		    case 5:
		    	system("cls");
		        cout<<"本游戏纯属娱乐,无不良影响"<<endl;
		        cout<<"二创,作者yuan shen ge"<<endl<<endl;
		        Sleep(5000);
		        break;
		    case 6:
		    	Sleep(1000);
	            system("cls");
		        cout<<"1000圆石十抽"<<endl;
		        cout<<"     [青龙]5星up★★★★★ 1000圆石一抽,扣1抽  "<<endl;
		        cout<<"     扣0,返回"<<endl;
		        cin>>xz3;
		        switch(xz3){
		         	case 1:
		         		Sleep(1000);
	            system("cls");
				cout<<"  o               "<<endl;
				Sleep(400);
				cout<<"   o              "<<endl;
				Sleep(400);
				cout<<"    o             "<<endl;
				Sleep(400);
				cout<<"     o            "<<endl;
				Sleep(400);
				cout<<"      o           "<<endl;
				Sleep(400);
				cout<<"       o          "<<endl;
				Sleep(400);
				cout<<"        o          "<<endl;
				Sleep(1000);
	            system("cls");
				cout<<"   o              "<<endl;
				Sleep(400);
				cout<<"     o            "<<endl;
				Sleep(400);
				cout<<"        o         "<<endl;
				Sleep(400);
				cout<<"            o     "<<endl;
				player.yuanshi=player.yuanshi-1000;
				a=rand()%9+1;
				if(a<=7){
					cout<<"你什么也没抽到"<<endl;
					cout<<"圆石:"<<player.yuanshi<<endl;
					break;
				}
				if(a==8){
					Sleep(400);
					SetConsoleColor(FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
                    std::cout << "               o    " << std::endl;
                    Sleep(400);
                    SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); 
					cout<<"恭喜你抽到[绿龙]★★★★"<<endl;
					player.gj=15;
					player.hp=120;
					break;
				}
				if(a==9){
					Sleep(400);
					SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
                    std::cout << "              o    " << std::endl;
                    Sleep(400);
                    SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); 
					std::cout<<"恭喜你抽到[青龙]★★★★★"<<endl;
					player.gj=10;
					player.hp=150;
					break;
				}
				break;
				case 0:
					break;
				
				 }
				 break;
			case 7:
			    Sleep(1000);
	            system("cls");
		        cout<<"活动一,登录领十连,扣1"<<endl<<endl;
				cin>>xz4;
				if(xz4==1){
					player.yuanshi=player.yuanshi+1000;
				}
				break;	 
		}
		
	}
	}
void zhandou(){
        c=rand()%5+1;
   		    if(c==1){
   			Sleep(1000);
   			system("cls");
   			guai =shilaimu;
   			printf("布豪,%s来袭!",guai.name);
   		    Sleep(1000);
		   }
		   if(c==2){
		   	Sleep(1000);
   			guai =qqren;
   			system("cls");
   			printf("布豪,%s来袭!",guai.name);
   		    Sleep(1000);
		   }
		   if(c==3){
		   	Sleep(1000);
   			guai =qqren_mix;
   			system("cls");
   			printf("布豪,%s来袭!",guai.name);
   		    Sleep(1000);
		   }
		   if(c==4){
		   	Sleep(1000);
   			guai =qqren_max;
   			system("cls");
   			printf("布豪,%s来袭!",guai.name);
   		    Sleep(1000);
		   }
		   if(c==5){
		   	Sleep(1000);
   			guai = fenglong;
   			system("cls");
   			printf("布豪,%s来袭!",guai.name);
   		    Sleep(1000);
		   }
		   	while(guai.hp>0&&player.hp>0){
			Sleep(1000);
	        system("cls");
			puts("=============================================================================");
		    printf("要怎么办?\n\n\n 1,攻击 2,背包 3,查看状态 \n\n\n");
		    puts("=============================================================================");
		    cin>>xz5;
		switch(xz5){
			case 1:
				Sleep(1000);
	            system("cls");
			    printf("%s对%s造成了%d点伤害\n\n\n",player.name,guai.name,player.gj);
			    guai.hp=guai.hp-player.gj;
			    Sleep(1000);
			    printf("%s对%s造成了%d点伤害",guai.name,player.name,guai.gj);
			    player.hp=player.hp-guai.gj;
			    break;
			case 2:
				Sleep(1000);
	            system("cls");
			    cout<<"圆石:"<<player.yuanshi<<" 魔拉:"<<endl;
			    cout<<"1,药草:"<<yaocao<<"2,手抛式-蹦蹦炸弹"<<zhadan<<endl;
			    cin>>xz6;
			    if(xz6==1){
			    	cout<<"你已服用药草"<<endl;
			    	yaocao--;
			    	player.hp =player.hp +20;
				}
				if(xz6==2){
					cout<<"你使用了手抛式-蹦蹦炸弹"<<endl;
					guai.hp=guai.hp-1000;
					zhadan--;
				}
			    break;
			case 3:
				system("cls");
		        printf("hp:%d 攻击:%d\n\n\n",player.hp,player.gj);
		        Sleep(5000);
		        break;
		    
		    if(guai.hp<=0){
		    Sleep(2000);
		    system("cls");
			printf("你成功打败了%s",guai.name);
			caidan();
		}
		    if(player.hp<=0){
			cout<<"你死了"<<endl;
			
		}
		}
		if(player.jingyan%500==0){
			dengji++;
			Sleep(2000);
			system("cls");
			cout<<"恭喜你升级为";
			printf("%d",dengji);
			player.hp=player.hp+10;
			player.gj++;
		}
}
if(guai.hp<=0){
		Sleep(2000);
		system("cls");
			printf("你成功打败了%s",guai.name);
			cout<<"怪物掉落了";
			printf("%s",guai.diaoluowu);
			wupin(guai.wupin_sizn);
		}
		if(player.hp<=0){
			cout<<"你死了"<<endl;
		}
}
void wupin(int wupin_sizn){
	switch(wupin_sizn){
		case 1:
			player.jingyan=player.jingyan+100;
			break;
		case 2:
			player.mola=player.mola+100;
			break;
		case 3:
			player.mola=player.mola+200;
			break;
		case 4:
			player.mola=player.mola+250;
			break;
		case 5:
			molong_jingshi++;
			break;
	}
}

石头剪刀布

#include <iostream>
using namespace std;
const int N = 2147483647;
string choose[5] = {"", "石头", "剪刀", "布"};
void print(int i, string s, bool b);
int input(string tip);
int main()
{
	int playerLostTime = 0;
	print(N, "欢迎来到石头剪刀布游戏!", 1);
	int intWhatTimeDoPlay = input("要玩几次:");
	for (int i = 1; i <= intWhatTimeDoPlay; i++)
	{
		int intPlayerInput = input("选择(1.石头,2.剪刀,3.布):");
		if (intPlayerInput > 3 or intPlayerInput < 1)
		{
			print(N, "请输入正确的选项(1.石头,2.剪刀,3.布)", 1);
			continue;
		}
		int intComputerInput = (intPlayerInput + 2);
		if (intComputerInput > 3)intComputerInput -= 3;
		print(N, "电脑选择:", 0);
		print(N, choose[intComputerInput], 0);
		print(N, ", ", 0);
		print(N, "你的选择:", 0);
		print(N, choose[intPlayerInput], 1);
		print(N, "你输了!", 1);
		playerLostTime++;
	}
	print(N, "你输了,输了", 0);
	print(playerLostTime, "", 0);
	print(N, "局", 0);
	return 0;
}

决斗场

#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
using namespace std;
long int ks,nd=15,y,rj,zb1,zb2,qi,d,i,j,k,x;
char ld1[500][500],ld2[500][500];
std::string xz; 
bool sy=false,yl;
long long b[10]={1,1,1,1,1,1,1,1},c=3;
long long e=0,f=0,g=0,h,l,n,m,p,q=1,z=20,dxd,d5;
long long a1,a2;
long long b1,b2;
long long xl[20],jn1[20],jn2[20],x1,x2,bd[20],hh=1,gj,zs1,zs2,zn,gj1;
bool d1=true,d2,d3,d4;
std::string jsjn1[20];
long long int zf[20]={0,78,1110,3,22,102,54188},cjzf[10]={0,9999,114514},zfj,xzf[10],zfz=3,fz,zszf,jn1f[20],jn2f[20],dsb;
long long int cjzfx[100],cs1,cs2,jxl1,jxl2;
long long int gxl[100],gx=1,xld;
void sld(){
	for(i=0;i<=nd;++i){
	    for(j=0;j<=nd;++j){
	    	ld1[i][j]='.';
	    }
    }
	const int MAX =(nd+1)/2;
	std::srand(std::time(0));
	for(i=1;i<=nd;++i){
	    for(j=1;j<=nd;++j){
	    	x=std::rand()%MAX+1;
	        if(x==1){
		        ld1[i][j]='@';qi++; 
	        }else{
		        ld1[i][j]='.';
	        }
	    }
    }	
	for(i=1;i<=nd;++i){
	for(j=1;j<=nd;++j){
		ld2[i][j]='#';
	}	
	}
	
}
void san(){
	
	for(i=1;i<=nd;++i){
	for(j=1;j<=nd;++j){
		int s=0;
		if(ld1[i][j]=='.'){
			if(ld1[i-1][j-1]=='@')s++;
			if(ld1[i-1][j]=='@')s++;
			if(ld1[i-1][j+1]=='@')s++;
			if(ld1[i][j+1]=='@')s++;
			if(ld1[i][j-1]=='@')s++;
			if(ld1[i+1][j-1]=='@')s++;
			if(ld1[i+1][j]=='@')s++;
			if(ld1[i+1][j+1]=='@')s++;
			if(s==0)ld1[i][j]='0';
			if(s==1)ld1[i][j]='1';
			if(s==2)ld1[i][j]='2';
			if(s==3)ld1[i][j]='3';
			if(s==4)ld1[i][j]='4';
			if(s==5)ld1[i][j]='5';
			if(s==6)ld1[i][j]='6';
			if(s==7)ld1[i][j]='7';
			if(s==8)ld1[i][j]='8';
		}
	}	
	}
}
void kl(char c1,int c2,int c3){
	i=c2;
	j=c3;
	if(c1=='0'&&ld1[i][j]!='@'){
		if(ld1[i-1][j-1]>='0'&&ld1[i-1][j-1]!='@'&&ld2[i-1][j-1]!='|'&&(ld1[i-1][j]=='0'||ld1[i][j-1]=='0')){
			ld2[i-1][j-1]=ld1[i-1][j-1];
		}
		if(ld1[i-1][j]>='0'&&ld1[i-1][j]!='@'&&ld2[i-1][j]!='|'){
			ld2[i-1][j]=ld1[i-1][j];
		}
		if(ld1[i-1][j+1]>='0'&&ld1[i-1][j+1]!='@'&&ld2[i-1][j+1]!='|'&&(ld1[i-1][j]=='0'||ld1[i][j+1]=='0')){ 
		ld2[i-1][j+1]=ld1[i-1][j+1];
		}
		if(ld1[i][j+1]>='0'&&ld1[i][j+1]!='@'&&ld2[i][j+1]!='|'){
		ld2[i][j+1]=ld1[i][j+1];
		}
		if(ld1[i][j-1]>='0'&&ld1[i][j-1]!='@'&&ld2[i][j-1]!='|'){
		ld2[i][j-1]=ld1[i][j-1];
		}
		if(ld1[i+1][j-1]>='0'&&ld1[i+1][j-1]!='@'&&ld2[i+1][j-1]!='|'&&(ld1[i+1][j]=='0'||ld1[i][j-1]=='0')){
		ld2[i+1][j-1]=ld1[i+1][j-1];
		}
		if(ld1[i+1][j]>='0'&&ld1[i+1][j]!='@'&&ld2[i+1][j]!='|'){
		ld2[i+1][j]=ld1[i+1][j];
		}
		if(ld1[i+1][j+1]>='0'&&ld1[i+1][j+1]!='@'&&ld2[i+1][j+1]!='|'&&(ld1[i+1][j]=='0'||ld1[i][j+1]=='0')){
		ld2[i+1][j+1]=ld1[i+1][j+1];
		}
	}
}
void game1(){
	while(1){
		for(i=1;i<=nd;++i){
	    for(j=1;j<=nd;++j){
	    	cout<<ld2[i][j]<<" ";
	    }
	    cout<<endl;
        }
		cout<<"选则插旗或翻开或取消插旗和正确的做标,例如第1个为1 1,,1为行为列,第4个为1 4,1为行4为列"<<endl; 
		cin>>xz>>zb1>>zb2;
		if(zb1<=nd&&zb2<=nd){
		}else{
			cout<<"不可以输入超过地图的坐标"<<endl;continue;
		}
		
		if(xz=="翻开"){
			if(ld1[zb1][zb2]==ld2[zb1][zb2]){
			cout<<"不可以翻开翻开过的地方"<<endl;
		    }
			ld2[zb1][zb2]=ld1[zb1][zb2];
			kl(ld1[zb1][zb2],zb1,zb2);
			if(ld1[zb1][zb2]=='@'||ld2[zb1][zb2]=='@'){
				cout<<"你被炸了"<<endl;
				return ;
			}
		}
		if(xz=="插旗"){
			if(ld2[zb1][zb2]==ld1[zb1][zb2]){
				cout<<"不可以插翻开过的地方!"<<endl;continue;
			} 
			if(qi>0&&(zb1<=nd&&zb2<=nd)){
				ld2[zb1][zb2]='|';qi--;cout<<"旗还剩"<<qi<<endl;
			}else{
				cout<<"没有旗了,输出别的吧!"<<endl;continue; 	
			}
		}
		if(xz=="取消插旗"){
			if(ld2[zb1][zb2]!='|'){
				cout<<"只能取消有旗的地方"<<endl; 
			}else{
			ld2[zb1][zb2]='#';	
			qi++;cout<<"旗还剩"<<qi<<endl;	
			}
		}
		if(qi==0){
		yl=true;
		for(i=1;i<=nd;++i){
	    for(j=1;j<=nd;++j){
	    	if(ld1[i][j]=='@'){
	    		if(ld2[i][j]=='|'){
				}else
				yl=false;
			}
	    }
        }
        if(yl==true){
        	sy=true;return ;
		}	
		}
		system("cls"); 
}
}
void C(){
    xl[1]=10;jn1[1]=-5;jn2[1]=2;bd[1]=10;	
    xl[2]=11;jn1[2]=3;jn2[2]=-4;	
    xl[3]=12;jn1[3]=4;jn2[3]=4;
    xl[4]=11;jn1[4]=-5;jn2[4]=2222;
    xl[5]=13;jn1[5]=3333;jn2[5]=3;bd[5]=5;
    xl[6]=8;jn1[6]=-4;jn2[6]=4;bd[6]=20;
    xl[7]=100;jn1[7]=-10;jn2[7]=10;bd[7]=30; 
	cs1=1;cs2=1;jxl1=0;jxl2=0; 
	zs1=0;zs2=0;
	for(i=1;i<=6;++i){
		cjzfx[i]=0;
	}
}
void zf3(){
    for(i=1;i<=6;++i){
    	jn1f[i]=jn1[i];
	}
	for(i=1;i<=6;++i){
    	jn2f[i]=jn2[i];
	}
}
void D(){
	int sj,js;
	srand(time(0));
	sj=rand()%6+1;
	if(sj==1){
	srand(time(0));
	js=rand()%2+1;
	gj=js;	
	}
	if(sj==2){
	srand(time(0));
	js=rand()%2+1;
	gj=js+2;	
	}
	if(sj==3){
	srand(time(0));
	js=rand()%2+1;
	gj=js+4;	
	}
	srand(time(0));
	gj=rand()%3+1;
}
void E(){
    cout<<"1方,血量:"<<xl[x1]<<endl;
    cout<<"2方,血量:"<<xl[x2]<<endl;
    if(jn1[x1]!=0){
        cout<<"1方技能1没有使用";
        if(jn2[x1]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",1方技能2使用"<<endl;	
        }	
    }else{
        cout<<"1方技能1使用";
        if(jn2[x1]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",技能2使用"<<endl;	
        }
    }
    if(jn1[x2]!=0){
        cout<<"2方技能1没有使用";
        if(jn2[x2]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",技能2使用"<<endl;	
        }	
    }else{
        cout<<"2方技能1使用";
        if(jn2[x2]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",技能2使用"<<endl;	
        }	
    }
}
bool F(long long c1){
	srand(time(0));
	d=rand()%100+1;
	if(d>=(100-c1)){
		return true;
	}else{
		return false;
	}		
}
void G(long long c1,long long c2){
	if(xl[c2]>=8){
		if(jn1[c2]/1111==0){
			d=2;
		}else{
		if(jn2[c2]/1111==0){
			d=3;
		}	
		}
	}
	if(xl[c2]>6){
		if(xl[c1]+jn1[c2]<=7){
			d=2;
		}else{
			if(xl[c1]+jn2[c2]<=7){
				d=3;
			}else{
				d=1;
			}
		}
	}else{
		if(jn1[c2]>0&&jn1[c2]/1111==0){
			d=2;
		}else{
			if(jn2[c2]>0&&jn2[c2]/1111==0){
				d=3;
			}else{
				d=1;
			} 
		}
	}
}
void zf1(int c1,int c2){
	if(xzf[c1]==114514){
		cjzfx[c2]++;
		return ;
	}
	if(xzf[c1]==9999){
		jn1[c2]=jn1f[c2];
		jn2[c2]=jn2f[c2];
		return ;
	}
	if(xzf[c1]==78){
		xl[c2]/=2;
		if(c2==x1){
			cs1=2;
		}else
		cs2=2;
		return ;
	}
	if(xzf[c1]%111==0){
		bd[c2]+=xzf[c1]/111;
		return ;
	}
	if(xzf[c1]<=10){
		xl[c2]+=xzf[c1];
		return ; 
	} 
	if(xzf[c1]%11==0){
		if(c2==x1){
			zs1+=xzf[c1]/11;
		}else{
			zs2+=xzf[c1]/11;
		}
		return ;
	}
	if(xzf[c1]==102){
		xl[c2]+=xzf[c1]%100;
		if(c2==x1){
			zs1+=xzf[c1]/100;
		}else{
			zs2+=xzf[c1]/100;
		}
		return ;
	}
	if(xzf[c1]==54188){
		if(c2==x1){
			jxl1+=1;
		}else{
			jxl2+=1;
		}
		return ;
	}
}
void zf2(){
	zfz=0;
	srand(time(0));
	zfj=rand()%10+1;
	if(zfj==1){
		srand(time(0));
	    zfj=rand()%2+1;
	    if(zfj==2){
	    cout<<"扣1,恢复技能1和技能2"<<endl;
		xzf[1]=cjzf[1];	
		}
		if(zfj==1){
	    cout<<"扣1,每次加上攻击对方的伤害的血量(仅普攻)"<<endl;
		xzf[1]=cjzf[2];	
		}
		zfz++;
}
    srand(time(0));
	for(i=1+zfz;i<=4;++i){
		cout<<"扣"<<i<<",";
		zfj=rand()%6+1;
		if(zfj==1){
	    cout<<"减50%的血普攻每次加100%"<<endl;
		xzf[i]=zf[1];	
        }
        if(zfj==2){
	    cout<<"加百分之10格挡"<<endl;
		xzf[i]=zf[2];	
        }
        if(zfj==3){
	    cout<<"加3血"<<endl;
		xzf[i]=zf[3];	
        }
        if(zfj==4){
	    cout<<"下次攻击加2"<<endl;
		xzf[i]=zf[4];	
        }
        if(zfj==5){
	    cout<<"加1攻加2血"<<endl;
		xzf[i]=zf[5];	
        }
        if(zfj==6){
	    cout<<"每回合加1血"<<endl;
		xzf[i]=zf[6];	
        }
	}
}
void zn1(){
		if((xzf[1]==114514||xzf[1]==9999)&&xl[x2]>6){
			d=1;
		}else{
			if(xl[x2]<6){
			for(i=1;i<=4;++i){
				if(xzf[i]<=10){
					d=i;
				}
			}	
			}else{
				srand(time(0));
				d=rand()%4+1;
				if(xzf[d]==78&&xl[x2]>=10){
				}else{
					d5=d;
					srand(time(0));
					while(d5==d){
						d=rand()%4+1;
					}
				} 
			}
			
		}
}
void tg(){
	for(i=1;i<=100;++i){
		gxl[i]=i+11;
	}
}
void yxh(int sb){
	Sleep(2000);
	system("cls"); 
	if(sb==7){
		cout<<"恭喜你解锁角色于项航"<<endl;
		Sleep(1000);
	system("cls"); 
		cout<<"血量100,技能1对面扣10点血,技能2加10血,30%格挡"<<endl;
		Sleep(1000);
	system("cls"); 
	}
}	 			
int main(){	
while(true){
system("cls");
cout<<"扣1,扫雷"<<endl; 
cout<<"扣2,对战"<<endl;
cin>>d;
system("cls");
if(d==1){
	    sy=false;
		cout<<"输出难度5-100,例如输出5则为5*5地图"<<endl;
		while(1){
		cin>>nd;
		system("cls");
		if(5<=nd&&nd<=100){
			break;
		}else{
			cout<<"只能输出5-100的数,再输出一次"<<endl;
		}	
		}
		system("cls");	
		sld();
		san();
		game1();
		if(sy==true){
			cout<<"我的法克,你居然通过了"<<nd<<"*"<<nd<<"的地图,太牛逼了!!!"<<endl;
			for(i=1;i<=nd;++i){
	        for(j=1;j<=nd;++j){
	    	cout<<ld1[i][j]<<" ";
	        }
	        cout<<endl;
            }
		}else{
			cout<<"你输了"<<endl;
			for(i=1;i<=nd;++i){
	        for(j=1;j<=nd;++j){
	    	cout<<ld1[i][j]<<" ";
	        }
	        cout<<endl;
            }
		} 	
}
if(d==2){
	cout<<"扣1,无尽之塔"<<endl;
	cout<<"扣2,对决"<<endl;
	cin>>d;
	system("cls");
	if(d==1){
		gx=1;
		tg();
		cout<<"扣1,血量10,技能1对方血量减5,技能2加2点血,被动10%格挡"<<endl;
	    cout<<"扣2,血量11,技能1加3点血,技能2对方血量减4"<<endl;
	    cout<<"扣3,血量12,技能1加4点血,技能2加4点血"<<endl;
	    cout<<"扣4,血量11,技能1对方血量减5,技能2每次攻击加2"<<endl;
	    cout<<"扣5,血量13,技能1伤害本局永久加3,技能2加3点血,被动5%格挡"<<endl;
	    cout<<"扣6,血量8,技能1对方血量减4,技能2加4点血,被动20%格挡"<<endl; 
	    cout<<"扣7,神秘角色"<<endl;
	    C();
	    zf3();
	    cin>>x1;
	    yxh(x1);
	    xld=xl[x1];
	    Sleep(500);
	    system("cls");
	    while(1){
	    	cout<<"第"<<gx<<"层"<<endl;
	    	while(gxl[gx]>0){
	    	cout<<"攻击"<<endl;
	    	cout<<"扣1,普攻"<<endl;
	        cout<<"扣2,技能1"<<endl;
	        cout<<"扣3,技能2"<<endl;
	    	while(gxl[gx]>0){
			xl[x1]+=jxl1;
	        cin>>d;	
	    if(d==1){
		D();
		cout<<"攻击对方"<<(gj+zs1)*cs1<<"点伤害"<<endl;
		gxl[gx]-=(gj+zs1)*cs1;	
		}		
	    if(cjzfx[x1]!=0&&d==1){
	    	cout<<"吸血"<<(gj+zs1)*cs1<<endl;
		    xl[x1]+=(gj+zs1)*cs1;
			break; 
		}
		if(d==1){break;}
		if(d==2&&jn1[x1]!=0){
			if(jn1[x1]>0){
				if(jn1[x1]/1111>0){
					zs1+=jn1[x1]/1111;
					cout<<"伤害本局永久加"<<jn1[x1]/1111<<endl;
				
				}else{
					cout<<"血量加"<<jn1[x1]<<endl;
					xl[x1]+=jn1[x1]; 
				}
			}else{
					cout<<"对方血量减"<<0-jn1[x1]<<endl;
					gxl[gx]+=jn1[x1];
			}
			jn1[x1]=0;
			break;
		}
		if(d==3&&jn2[x1]!=0){
			if(jn2[x1]>0){
				if(jn2[x1]/1111>0){
					cout<<"伤害本局永久加"<<jn2[x1]/1111<<endl;
				zs1+=jn2[x1]/1111;
				}else{
				cout<<"血量加"<<jn2[x1]<<endl;
					xl[x1]+=jn2[x1]; 
				}
			}else{
					cout<<"对方血量减"<<0-jn2[x1]<<endl;
				gxl[gx]+=jn2[x1];
			}
			jn2[x1]=0;
			break;
		}else{
			if(jn2[x1]==0||jn1[x1]==0){
			cout<<"技能用过了!不能再用了!"<<endl;
			continue;	
			}
		}	
		}
		srand(time(0));
		dsb=rand()%4+1;
		srand(time(0)); 
		if(dsb==1)gj=rand()%2+1;
		if(dsb==2)gj=rand()%2+3;
		if(dsb==3)gj=rand()%2+5;
		if(dsb==4)gj=rand()%3+1;
		gj+=gx*2/3;
		if(bd[x1]>0){
			if(F(bd[x1])){
				cout<<"你格挡"<<endl;
			}else{
				xl[x1]-=gj;
				cout<<"对方攻击你"<<gj<<"点伤害"<<endl;
			}
		}else{
			xl[x1]-=gj;
			cout<<"对方攻击你"<<gj<<"点伤害"<<endl;
		}
		if(xl[x1]<=0){
			break;
		}
		Sleep(1000);
		system("cls");
		cout<<"血量:"<<xl[x1]<<endl;
		cout<<"怪血还剩:"<<gxl[gx]<<endl; 
	    if(jn1[x1]!=0){
        cout<<"技能1没有使用";
        if(jn2[x1]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",技能2使用"<<endl;	
        }	
        }else{
        cout<<"技能1使用";
        if(jn2[x1]!=0){
            cout<<",技能2没有使用"<<endl;
        }else{
            cout<<",技能2使用"<<endl;	
        }
        }	
		}
		if(xl[x1]<=0){
			cout<<"你死亡"<<endl;
			cout<<"您打通"<<gx<<"层"<<endl;
			break;
		}
	    gx++;
	    cout<<"增幅"<<endl;
	    zf2();
	    cin>>d;
	    zf1(d,x1);
		}
		continue;
	}
	if(d==2){
	zs1=0;
	zs2=0; 
	cout<<"规则:普攻会随机给对方扣1-6点伤害,在第1回合不能用技能,第2回合开启技能,一共有2个技能+一个被动,血量没了对方就获胜,血量都没了平局"<<endl;
	cout<<"1 vs 1,扣0"<<endl;
	cout<<"AI vs 人类,扣1"<<endl;
	cin>>zn; 
	cout<<"扣1,血量10,技能1对方血量减5,技能2加2点血,被动10%格挡"<<endl;
	cout<<"扣2,血量11,技能1加3点血,技能2对方血量减4"<<endl;
	cout<<"扣3,血量12,技能1加4点血,技能2加4点血"<<endl;
	cout<<"扣4,血量11,技能1对方血量减5,技能2每次攻击加2"<<endl;
	cout<<"扣5,血量13,技能1伤害本局永久加3,技能2加3点血,被动5%格挡"<<endl;
	cout<<"扣6,血量8,技能1对方血量减4,技能2加4点血,被动20%格挡"<<endl; 
	cout<<"扣7,神秘角色"<<endl;
	C();
	zf3();
	cout<<"不可以选一样的角色"<<endl;
	cout<<"选择1号角色"<<endl;
	cin>>x1;
	yxh(x1);
	if(zn>0){
		srand(time(0));
		x2=rand()%6+1;	
		while(x2==x1){
		srand(time(0));
		x2=rand()%6+1;	
		}
		cout<<"AI选择"<<x2<<endl;
	}else{
	cout<<"选择2号角色"<<endl;	
	cin>>x2;	
	}
	Sleep(500);
	system("cls");
	while(x2==x1){
		if(zn>0){
		srand(time(0));
		x2=rand()%6+1;	
		}else{
		cout<<"不可以选一样的角色"<<endl;
		cin>>x2 ;	
		}
	}
	Sleep(500);
	system("cls");
	cout<<"第"<<hh<<"回合"<<endl<<endl;
	cout<<"扣1,攻击"<<endl;
	cin>>d;
	D();
	if(bd[x2]>0){
		if(F(bd[x2])){
			cout<<"2方格挡"<<endl; 
		}else{
		xl[x2]-=gj;
		cout<<"1方攻击2方"<<gj<<"点伤害"<<endl;	
		}
	}else{
		xl[x2]-=gj;
		cout<<"1方攻击2方"<<gj<<"点伤害"<<endl;	
	}
	if(zn>0){
		d=1;
	}else{
	cout<<"扣1,攻击"<<endl;
	cin>>d;	
	}
	D();
	if(bd[x1]>0){
		if(F(bd[x1])){
			cout<<"1方格挡"<<endl; 
		}else{
		xl[x1]-=gj;
		cout<<"2方攻击1方"<<gj<<"点伤害"<<endl;	
		}
	}else{
		xl[x1]-=gj;
		cout<<"2方攻击1方"<<gj<<"点伤害"<<endl;	
	}
	Sleep(500);
	system("cls");
	E(); 
	hh++;
	cout<<"开启技能!!!"<<endl;
	cout<<"扣1,普攻"<<endl;
	cout<<"扣2,技能1"<<endl;
	cout<<"扣3,技能2"<<endl;
	Sleep(500);
	system("cls"); 
	while(xl[x1]>0&&xl[x2]>0){
		fz++;
	cout<<"第"<<hh<<"回合"<<endl<<endl;
	if(fz%4==0){
		cout<<"增幅"<<endl; 
		zf2();
		cout<<"1方"<<endl;
		cin>>d;
		zf1(d,x1);
		if(zn>0){
			zn1();
			cout<<"AI选择"<<d<<endl;
		}else{
		cout<<"2方"<<endl;
		cin>>d;	
		}
		zf1(d,x2);
		continue;
	}
	cout<<"1方攻击"<<endl;
	while(true){
		if(jxl1==1){
			xl[x1]++;
		}
	cin>>d;	
	if(d==1){
		D();
		if(bd[x2]>0){
		if(F(bd[x2])){
			cout<<"2方格挡"<<endl;break; 
		}else{
		    cout<<"1方攻击2方"<<(gj+zs1)*cs1<<"点伤害"<<endl;		
			xl[x2]-=(gj+zs1)*cs1;
		}
	}else{
		cout<<"1方攻击2方"<<(gj+zs1)*cs1<<"点伤害"<<endl;		
		xl[x2]-=(gj+zs1)*cs1;	
	}
	if(cjzfx[x1]!=0){
		cout<<"1方吸血"<<(gj+zs1)*cs1<<endl;
		xl[x1]+=(gj+zs1)*cs1;
		break; 
	}
	break;
	}
	if(d==2&&jn1[x1]!=0){
		if(jn1[x1]>0){
			if(jn1[x1]/1111>0){
				zs1+=jn1[x1]/1111;
				cout<<"伤害本局永久加"<<jn1[x1]/1111<<endl;
			}else{
				cout<<"1方血量加"<<jn1[x1]<<endl;
				xl[x1]+=jn1[x1]; 
			}
		}else{
				cout<<"2方血量减"<<0-jn1[x1]<<endl;
				xl[x2]+=jn1[x1];
		}
		jn1[x1]=0;
		break;
	}else{
		if(jn1[x1]==0&&jn2[x1]==0){
		cout<<"技能用过了!不能再用了!"<<endl;
		continue;	
		}
	}
	if(d==3&&jn2[x1]!=0){
		if(jn2[x1]>0){
			if(jn2[x1]/1111>0){
				cout<<"伤害本局永久加"<<jn2[x1]/1111<<endl;
				zs1+=jn2[x1]/1111;
			}else{
				cout<<"1方血量加"<<jn2[x1]<<endl;
				xl[x1]+=jn2[x1]; 
			}
		}else{
				cout<<"2方血量减"<<0-jn2[x1]<<endl;
				xl[x2]+=jn2[x1];
		}
		jn2[x1]=0;
		break;
	}else{
		if(jn2[x1]==0||jn1[x1]==0){
		cout<<"技能用过了!不能再用了!"<<endl;
		continue;	
		}
	}	
	} 
	cout<<"2方攻击"<<endl;
	while(true){
		if(jxl2==1){
		xl[x2]++;
		}
		if(zn>=1){
		G(x1,x2);
		}else{
		cin>>d;
		}
	if(d==1){
		D();
		if(zn>=1){if(gj+2<=6){srand(time(0));gj+=rand()%2+1;}else{srand(time(0));gj=rand()%2+5;}}
		if(bd[x1]>0){
		if(F(bd[x1])){
			cout<<"1方格挡"<<endl;
			break; 
		}else{
			xl[x1]-=(gj+zs2)*cs2;
		    cout<<"2方攻击1方"<<(gj+zs2)*cs2<<"点伤害"<<endl;		
		}
	}else{
		xl[x1]-=(gj+zs2)*cs2;
		    cout<<"2方攻击1方"<<(gj+zs2)*cs2<<"点伤害"<<endl;		
	}
	if(cjzfx[x2]!=0&&d==1){
		cout<<"2方吸血"<<(gj+zs2)*cs2<<endl;
		xl[x1]+=(gj+zs2)*cs2;
		break;
	}
	break;
    }
	if(d==2&&jn1[x2]!=0){
		if(jn1[x2]>0){
			if(jn1[x2]/1111>0){
				cout<<"伤害本局永久加"<<jn1[x2]/1111<<endl;
				zs2+=jn1[x2]/1111;
			}else{
				cout<<"2方血量加"<<jn1[x2]<<endl;
				xl[x2]+=jn1[x2]; 
			}
		}else{
				cout<<"1方血量减"<<0-jn1[x2]<<endl;
				xl[x1]+=jn1[x2];
		}
		jn1[x2]=0;
		break; 
	}else{
		if(jn1[x2]==0&&jn2[x2]==0&&zn>1){
		cout<<"技能用过了!不能再用了!"<<endl;
		continue;	
		}
	}
	if(d==3&&jn2[x2]!=0){
		if(jn2[x2]>0){
			if(jn2[x2]/1111>0){
				cout<<"伤害本局永久加"<<jn2[x2]/1111<<endl;
				zs2+=jn2[x2]/1111;
			}else{
				cout<<"2方血量加"<<jn2[x2]<<endl;
				xl[x2]+=jn2[x2]; 
			}
		}else{
				cout<<"1方血量减"<<0-jn2[x2]<<endl;
				xl[x1]+=jn2[x2];
		}
		jn2[x2]=0;
		break;
	}else{
		if((jn2[x2]==0||jn1[x2]==0)&&zn<1){
		cout<<"技能用过了!不能再用了!"<<endl;
		continue;	
		}
	}
	}
	Sleep(2000);
	system("cls");	
	E();
	Sleep(2000);
	system("cls"); 
	hh++;	
	}
	if(xl[x1]<1&&xl[x2]>0){
	cout<<"2方获胜"<<endl;	
	}else{
		if(xl[x2]<1&&xl[x1]>0){
		cout<<"1方获胜"<<endl;		
		}else{
		cout<<"平局"<<endl;		
		}
	}	
	} 
}
Sleep(500);
system("cls"); 
}
return 0;
}

恶魔轮盘赌

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int Your=6,Other=6;
string daojuname[]={"放大镜","手铐","小刀","烟","饮料"};
double Yourmoney;

int shi,kong;
int q[10],qlen;//1 实 2 空 
int Rand(int x,int y){
	int A=rand(),B=rand();
	return A*1ll*B%(y-x+1)+x;
}
int T;//ou->you
int daojulen;
int daoju[10];
int daojulen1;
int daoju1[10];
void build_gun(){
	kong=Rand(1,4);
	shi=Rand(1,4);
	qlen=0;
	printf("%d发实弹,%d发空弹\n",shi,kong);
	int a1=kong,a2=shi;
	for(int i=1;i<=kong+shi;i++){
//      Sleep(50);
		int sum=Rand(1,a1+a2);
		if(sum<=a1){
			a1--;
			q[++qlen]=2;
		}else{
			a2--;
			q[++qlen]=1;
		}
	}
	int maxn=min(4,8-daojulen);
	printf("你获得了%d个道具:\n",maxn);
	daojulen+=maxn;
	for(int i=1;i<=maxn;i++){
//      Sleep(50);
		int kkk=Rand(0,4);
		daoju[kkk]++;
		cout<<daojuname[kkk];
		if(i!=maxn){
			printf(",");
		}
	}
	printf("\n");
	maxn=min(4,8-daojulen1);
	printf("恶魔获得了%d个道具:\n",maxn);
	daojulen1+=maxn;
	for(int i=1;i<=maxn;i++){
		int kkk=Rand(0,4);
		daoju1[kkk]++;
		cout<<daojuname[kkk];
		if(i!=maxn){
			printf(",");
		}
	}
	printf("\n");
	system("pause");
	system("cls");
}
void IsOver(){
	if(Your<=0){
		printf("你输了\n");
		system("pause");
		exit(0);
	}
	if(Other<=0){
		printf("你赢了\n你获得了奖金$%.2lf\n",Yourmoney);
		system("pause");
		exit(0);
	}
}
void wait(){
	for(int i=1;i<=3;i++){
		Sleep(500);
		printf(".");
	}
	Sleep(500);
}
int Hurt=1;
int shoukao_you;
void Timeyou(){
	int x;
	while(1){
		printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other);
		printf("剩余实弹数:%d    剩余空弹数:%d\n",shi,kong);
		printf("你现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("恶魔现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju1[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("现在是你的回合\n");
		printf("你要\n1.向恶魔开枪\n2.向自己开枪\n");
		for(int i=0;i<=4;i++){
			printf("%d.使用",i+3);
			cout<<daojuname[i]<<'\n';
		}
		scanf("%d",&x);
		if(1<=x&&x<=7){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	if(x==1){
		printf("你决定向恶魔开枪");
		T++;
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
			if(shoukao_you==1){
				shoukao_you=0;
				printf("因为你使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}else{
//          printf("((%lf))\n",Yourmoney);
			Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
//          printf("{{%lf}}\n",Yourmoney);
			shi--;
			qlen--;
			Other-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver();
			if(shoukao_you==1){
				shoukao_you=0;
				Yourmoney+=1000.0;
				printf("因为你使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==2){
		printf("你决定向自己开枪");
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
		}else{
			Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
			T++;
			shi--;
			qlen--;
			Your-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver();
			if(shoukao_you==1){
				shoukao_you=0;
				printf("因为你使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
		if(daoju[0]){
			daoju[0]--;
			daojulen--;
			printf("你使用了放大镜\n");
			wait();
			printf("\n你看到了");
			if(q[qlen]==1){
				printf("实弹\n");
				Yourmoney+=2500.0;
			}else{
				printf("空弹\n");
			}
			Sleep(500);
			printf("\n");
		}else{
			printf("你现在没有放大镜\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==4){
		if(daoju[1]){
			if(!shoukao_you){
				daoju[1]--;
				daojulen--;
				printf("你使用了手铐\n");
				printf("你获得了连开两枪的机会\n");
				shoukao_you=1;
			}else{
				printf("你已经用过手铐了\n");
			}
			Sleep(1145);
			system("cls"); 
		}else{
			printf("你现在没有手铐\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==5){
		if(daoju[2]){
			if(Hurt==1){
				daoju[2]--;
				daojulen--;
				printf("你使用了小刀\n");
				printf("若下一发为实弹则伤害+1\n");
				Yourmoney+=500.0;
				Hurt=2;
			}else{
				printf("你已经用过小刀了\n");
			}
			Sleep(1145);
			system("cls");
		}else{
			printf("你现在没有小刀\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==6){
		if(daoju[3]){
			if(Your^6){
				daoju[3]--;
				daojulen--;
				printf("你使用了烟\n");
				printf("你回复了一点生命\n");
				Yourmoney+=500.0;
				Your++;
			}else{
				printf("你现在不需要烟\n");
			}
			Sleep(1145);
		}else{
			printf("你现在没有烟\n");
			Sleep(1145);
			system("cls");
		}
	}else{
		if(daoju[4]){
			daoju[4]--;
			daojulen--;
			printf("你使用了饮料\n");
			wait();
			printf("\n");
			printf("你退了一发"); 
			if(q[qlen]==2){
				printf("空弹");
				kong--;
			}else{
				printf("实弹");
				Yourmoney+=500.0;
				shi--;
			}
			qlen--;
			Sleep(500);
		}else{
			printf("你现在没有饮料\n");
			Sleep(1145);
			system("cls");
		}
	}
	Sleep(1000);
	system("cls");
}
int Know;//通过放大镜得知下一发子弹 
int shoukaoemo;
void fightyou(){
	printf("恶魔决定向你开枪");
	T++;
	wait();
	if(q[qlen]==2){
		Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
		kong--;
		qlen--;
		Hurt=1;
		Know=0;
		printf("是空弹\n");
		if(shoukaoemo){
			printf("因为恶魔使用了手铐,所以可以再来一次\n");
			T--;
			Sleep(500);
			shoukaoemo=0;
		}
	}else{
		Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
		shi--;
		qlen--;
		Your-=Hurt;
		Hurt=1;
		printf("是实弹\n");
		Know=0;
		Sleep(500);
		IsOver();
		if(shoukaoemo){
			printf("因为恶魔使用了手铐,所以可以再来一次\n");
			Yourmoney+=1000.0;
			T--;
			Sleep(500);
			shoukaoemo=0;
		}
	}
}
void fightemo(){
	printf("恶魔决定向自己开枪");
	wait();
	if(q[qlen]==2){
		Yourmoney+=2000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
		kong--;
		qlen--;
		printf("是空弹\n");
		Know=0;
	}else{
		Yourmoney+=5000.0*(1+(double)(kong)*1.0/(double)(shi+kong));
		shi--;
		T++;
		qlen--;
		Other-=Hurt;
		Hurt=1;
		printf("是实弹\n");
		Know=0;
		Sleep(500);
		IsOver();
		if(shoukaoemo){
			printf("因为恶魔使用了手铐,所以可以再来一次\n");
			T--;
			Sleep(500);
			shoukaoemo=0;
		}
	}
}
void Timeother(){
	printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other);
	printf("剩余实弹数:%d    剩余空弹数:%d\n",shi,kong);
	printf("你现在拥有的道具:\n");
	for(int i=0;i<=4;i++){
		cout<<daojuname[i];
		printf("%d",daoju[i]);
		printf("个");
		if(i!=4){
			printf(",");
		}
	}
	printf("\n");
	printf("恶魔现在拥有的道具:\n");
	for(int i=0;i<=4;i++){
		cout<<daojuname[i];
		printf("%d",daoju1[i]);
		printf("个");
		if(i!=4){
			printf(",");
		}
	}
	printf("\n");
	printf("现在是恶魔的回合\n");
	Sleep(1500);
	
	if(Other!=6){
		if(daoju1[3]){
			daoju1[3]--;
			daojulen1--;
			printf("恶魔使用了烟\n");
			printf("恶魔回复了一点生命\n");
			Other++;
			Yourmoney+=500.0;
			Sleep(1145);
			system("cls");
			return ;
		}
	}
	if(Know==0&&kong==0){
		Know=1;
	}
	if(Know==0){
		if(abs(shi-kong)<2&&kong!=0){
			if(daoju1[0]){
				daoju1[0]--;
				daojulen1--;
				printf("恶魔使用了放大镜\n");
				wait();
				printf("\n恶魔看到了");
				if(q[qlen]==1){
					printf("实弹");
					Yourmoney+=2500.0;
					Know=1;
				}else{
					printf("空弹");
					Know=2;
				}
				Sleep(1145);
				system("cls");
				return ;
			}
		}
	}else if(Know==1){
		if(Hurt==1&&daoju1[2]){
			daoju1[2]--;
			daojulen1--;
			Hurt++;
			printf("恶魔使用了小刀\n");
			printf("若下一发为实弹则伤害+1");
			Yourmoney+=500.0;
			Sleep(1145);
			system("cls");
			return ;
		}else{
			if(shi>=kong+1&&daoju1[1]&&shoukaoemo!=1){
				daoju1[1]--;
				daojulen1--;
				shoukaoemo=1;
				printf("恶魔使用了手铐\n");
				printf("恶魔获得了连开两枪的机会\n");
				Sleep(1145);
				system("cls");
				return ;
			}
			fightyou();
			system("cls");
			return ;
		}
	}else{
		if(daoju1[4]){
			daoju1[4]--;
			daojulen1--;
			printf("恶魔使用了饮料\n");
			wait();
			printf("\n");
			printf("恶魔退了一发"); 
			if(q[qlen]==2){
				printf("空弹");
				kong--;
			}else{
				printf("实弹");
				shi--;
			}
			Know=0;
			qlen--;
			Sleep(500);
			Sleep(1145);
			system("cls");
			return ;
		}else{
			fightemo();
			Sleep(1145);
			system("cls");
			return ;
		}
	}
	if(shi>=kong){
		fightyou();
	}else{
		fightemo();
	}
	Sleep(1145);
	system("cls");
}
void Play(){
	while(1){
		if(shi==0){
			build_gun();
			T=0;
			continue;
		}
		if(T%2==0){
			Timeyou();
		}else{
			Timeother();
		}
	}
}
void danrenplay(){
	for(int i=1;i<=3;i++){
		printf(".");
//      Sleep(1000);
	}
	printf("\n");
	printf("又来了一位挑战者...\n");
	Sleep(1000);
	int x;
	while(1){
		printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n");
		scanf("%d",&x);
		if(x==1||x==2){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	while(1){
		printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n");
		scanf("%d",&x);
		if(x==1||x==2){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	if(x==1){
		
	}else{
		for(int i=1;i<=3;i++){
			printf(".");
			Sleep(1000);
		}
		printf("\n");
		printf("规则:\n");
		printf("你和恶魔都各有6点生命\n") ;
		printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n"); 
		printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n");
		printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n");
		printf("如果你对恶魔开枪,无论如何,都将停止行动\n");
		printf("道具一览:\n"); 
		printf("放大镜:可以知道下一发子弹是空弹还是实弹\n");
		printf("手铐:增加一次本回合的行动次数\n");
		printf("小刀:若下一发子弹为实弹,则伤害+1\n");
		printf("烟:可以回复1点体力\n");
		printf("饮料:可以退一发子弹\n");
		system("pause");
		system("cls");
	}
	
	printf("好吧\n");
	Sleep(1145);
	printf("游戏将要开始了哦\n");
	Sleep(1145);
	system("cls");
	Play();
}
void IsOver_duo(){
	if(Your<=0){
		printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n",Yourmoney); 
		system("pause");
		exit(0);
	}else if(Other<=0){
		printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n",Yourmoney); 
		system("pause");
		exit(0);
	}
	
}
void build_gun_duo(){
	kong=Rand(1,4);
	shi=Rand(1,4);
	qlen=0;
	printf("%d发实弹,%d发空弹\n",shi,kong);
	int a1=kong,a2=shi;
	for(int i=1;i<=kong+shi;i++){
//      Sleep(50);
		int sum=Rand(1,a1+a2);
		if(sum<=a1){
			a1--;
			q[++qlen]=2;
		}else{
			a2--;
			q[++qlen]=1;
		}
	}
	int maxn=min(2,8-daojulen);
	printf("玩家A获得了%d个道具:\n",maxn);
	daojulen+=maxn;
	for(int i=1;i<=maxn;i++){
//      Sleep(50);
		int kkk=Rand(0,4);
		daoju[kkk]++;
		cout<<daojuname[kkk];
		if(i!=maxn){
			printf(",");
		}
	}
	printf("\n");
	maxn=min(2,8-daojulen1);
	printf("玩家B获得了%d个道具:\n",maxn);
	daojulen1+=maxn;
	for(int i=1;i<=maxn;i++){
		int kkk=Rand(0,4);
		daoju1[kkk]++;
		cout<<daojuname[kkk];
		if(i!=maxn){
			printf(",");
		}
	}
	printf("\n");
	system("pause");
	system("cls");
}
void Timeyou_duo(){
	int x;
	while(1){
		printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other);
		printf("剩余实弹数:%d    剩余空弹数:%d\n",shi,kong);
		printf("玩家A现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("玩家B现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju1[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("现在是玩家A的回合\n");
		printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n");
		for(int i=0;i<=4;i++){
			printf("%d.使用",i+3);
			cout<<daojuname[i]<<'\n';
		}
		scanf("%d",&x);
		if(1<=x&&x<=7){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	if(x==1){
		printf("玩家A决定向玩家B开枪");
		T++;
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
			if(shoukao_you==1){
				shoukao_you=0;
				printf("因为玩家A使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}else{
//          printf("((%lf))\n",Yourmoney);
			Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
//          printf("{{%lf}}\n",Yourmoney);
			shi--;
			qlen--;
			Other-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver_duo();
			if(shoukao_you==1){
				shoukao_you=0;
				Yourmoney+=1000.0;
				printf("因为玩家A使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==2){
		printf("玩家A决定向自己开枪");
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
		}else{
			Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
			T++;
			shi--;
			qlen--;
			Your-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver_duo();
			if(shoukao_you==1){
				shoukao_you=0;
				printf("因为玩家A使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
		if(daoju[0]){
			daoju[0]--;
			daojulen--;
			printf("玩家A使用了放大镜\n");
			wait();
			printf("\n玩家A看到了");
			if(q[qlen]==1){
				printf("实弹\n");
				Yourmoney+=2500.0;
			}else{
				printf("空弹\n");
			}
			Sleep(500);
			printf("\n");
		}else{
			printf("玩家A现在没有放大镜\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==4){
		if(daoju[1]){
			if(!shoukao_you){
				daoju[1]--;
				daojulen--;
				printf("玩家A使用了手铐\n");
				printf("玩家A获得了连开两枪的机会\n");
				shoukao_you=1;
			}else{
				printf("玩家A已经用过手铐了\n");
			}
			Sleep(1145);
			system("cls"); 
		}else{
			printf("玩家A现在没有手铐\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==5){
		if(daoju[2]){
			if(Hurt==1){
				daoju[2]--;
				daojulen--;
				printf("玩家A使用了小刀\n");
				printf("若下一发为实弹则伤害+1\n");
				Yourmoney+=500.0;
				Hurt=2;
			}else{
				printf("玩家A已经用过小刀了\n");
			}
			Sleep(1145);
			system("cls");
		}else{
			printf("玩家A现在没有小刀\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==6){
		if(daoju[3]){
			if(Your^4){
				daoju[3]--;
				daojulen--;
				printf("玩家A使用了烟\n");
				printf("玩家A回复了一点生命\n");
				Yourmoney+=500.0;
				Your++;
			}else{
				printf("玩家A现在不需要烟\n");
			}
			Sleep(1145);
		}else{
			printf("玩家A现在没有烟\n");
			Sleep(1145);
			system("cls");
		}
	}else{
		if(daoju[4]){
			daoju[4]--;
			daojulen--;
			printf("玩家A使用了饮料\n");
			wait();
			printf("\n");
			printf("玩家A退了一发"); 
			if(q[qlen]==2){
				printf("空弹");
				kong--;
			}else{
				printf("实弹");
				Yourmoney+=500.0;
				shi--;
			}
			qlen--;
			Sleep(500);
		}else{
			printf("玩家A现在没有饮料\n");
			Sleep(1145);
			system("cls");
		}
	}
	Sleep(1000);
	system("cls");
}
void Timeother_duo(){
	int x;
	while(1){
		printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other);
		printf("剩余实弹数:%d    剩余空弹数:%d\n",shi,kong);
		printf("玩家A现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("玩家B现在拥有的道具:\n");
		for(int i=0;i<=4;i++){
			cout<<daojuname[i];
			printf("%d",daoju1[i]);
			printf("个");
			if(i!=4){
				printf(",");
			}
		}
		printf("\n");
		printf("现在是玩家B的回合\n");
		printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n");
		for(int i=0;i<=4;i++){
			printf("%d.使用",i+3);
			cout<<daojuname[i]<<'\n';
		}
		scanf("%d",&x);
		if(1<=x&&x<=7){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	if(x==1){
		printf("玩家B决定向玩家A开枪");
		T++;
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
			if(shoukaoemo==1){
				shoukaoemo=0;
				printf("因为玩家B使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}else{
//          printf("((%lf))\n",Yourmoney);
			Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
//          printf("{{%lf}}\n",Yourmoney);
			shi--;
			qlen--;
			Your-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver_duo();
			if(shoukaoemo==1){
				shoukaoemo=0;
				Yourmoney+=1000.0;
				printf("因为玩家B使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==2){
		printf("玩家B决定向自己开枪");
		wait();
		if(q[qlen]==2){
			Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
			kong--;
			qlen--;
			Hurt=1;
			printf("是空弹\n");
		}else{
			Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
			T++;
			shi--;
			qlen--;
			Other-=Hurt;
			Hurt=1;
			printf("是实弹\n");
			Sleep(500);
			IsOver_duo();
			if(shoukao_you==1){
				shoukao_you=0;
				printf("因为玩家B使用了手铐,所以可以再来一次\n");
				Sleep(500);
				T--;
			}
		}
	}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
		if(daoju1[0]){
			daoju1[0]--;
			daojulen1--;
			printf("玩家B使用了放大镜\n");
			wait();
			printf("\n玩家B看到了");
			if(q[qlen]==1){
				printf("实弹\n");
				Yourmoney+=2500.0;
			}else{
				printf("空弹\n");
			}
			Sleep(500);
			printf("\n");
		}else{
			printf("玩家B现在没有放大镜\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==4){
		if(daoju1[1]){
			if(!shoukaoemo){
				daoju1[1]--;
				daojulen1--;
				printf("玩家B使用了手铐\n");
				printf("玩家B获得了连开两枪的机会\n");
				shoukaoemo=1;
			}else{
				printf("玩家B已经用过手铐了\n");
			}
			Sleep(1145);
			system("cls"); 
		}else{
			printf("玩家B现在没有手铐\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==5){
		if(daoju1[2]){
			if(Hurt==1){
				daoju1[2]--;
				daojulen1--;
				printf("玩家B使用了小刀\n");
				printf("若下一发为实弹则伤害+1\n");
				Yourmoney+=500.0;
				Hurt=2;
			}else{
				printf("玩家B已经用过小刀了\n");
			}
			Sleep(1145);
			system("cls");
		}else{
			printf("玩家B现在没有小刀\n");
			Sleep(1145);
			system("cls");
		}
	}else if(x==6){
		if(daoju1[3]){
			if(Other^4){
				daoju1[3]--;
				daojulen1--;
				printf("玩家B使用了烟\n");
				printf("玩家B回复了一点生命\n");
				Yourmoney+=500.0;
				Other++;
			}else{
				printf("玩家B现在不需要烟\n");
			}
			Sleep(1145);
		}else{
			printf("玩家B现在没有烟\n");
			Sleep(1145);
			system("cls");
		}
	}else{
		if(daoju1[4]){
			daoju1[4]--;
			daojulen1--;
			printf("玩家B使用了饮料\n");
			wait();
			printf("\n");
			printf("玩家B退了一发"); 
			if(q[qlen]==2){
				printf("空弹");
				kong--;
			}else{
				printf("实弹");
				Yourmoney+=500.0;
				shi--;
			}
			qlen--;
			Sleep(500);
		}else{
			printf("玩家B现在没有饮料\n");
			Sleep(1145);
			system("cls");
		}
	}
	Sleep(1000);
	system("cls");
}
int asdasd;
void duorenplay(){
	while(1){
		if(shi==0){
			build_gun_duo();
			T=asdasd;
			asdasd++;
			continue;
		}
		if(T%2==0){
			Timeyou_duo();
		}else{
			Timeother_duo();
		}
	}
}
int main(){
	srand(time(0));
	int x;
	while(1){
		printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n");
		scanf("%d",&x);
		if(x==1||x==2){
			break;
		}
		printf("输入不合法\n");
		Sleep(1145);
		system("cls");
	}
	system("cls");
	if(x==1){
		danrenplay();
	}else{
		Your=Other=4;
		duorenplay();
	}
	return 0;
}