游戏终端服务器分享(1.2版)

 

#include
#include
#include //suiji
#include
#include //SLEEP函数
#include
#include
#include
#include
#include
#include 
#include 
#define Height 25 //迷宫的高度,必须为奇数
#define Width 25 //迷宫的宽度,必须为奇数
#define Wall 1
#define Road 0
#define Start 2
#define End 3
#define Esc 5
#define Up 1
#define Down 2
#define Left 3
#define Right 4
using namespace std;
#define next 32
string UsersName;
int getint4(int *index=NULL){
	char c;
	int a;
	while((c=getch())!=13){
		cout << c-'0';
		a*=10;
		a+=c-'0';
	}
	cout << "\n";
	return a;
}
#define getint getint4
int getint3(){
	int a;
	a=getch()-'0';
	return a;
}//用按键读入数字(0~9) 
void print(string a,int speed=100){
	for(int i=0;iplay.max_hp){
			print("hp过多,不需要止血草\n");
			break;
		}
		play.hp+=50;
		grass--;
		break;
		case 2:if(bag==0){
			print("没有急救包了\n");
			break;
		}
		if(play.hp+80>play.max_hp){
			print("hp过多,不需要急救包\n");
			break;
		}
		play.hp+=80;
		bag--;
		break;
		case 3:if(medicine==0){
			print("没有云南白药了\n");
			break;
		}
		if(play.hp+100>play.max_hp){
			print("hp过多,不需要云南白药\n");
			break;
		}
		play.hp+=100;
		medicine--;
		break;
		case 4:if(super_medicine==0){
			print("没有超级云南白药了\n");
			break;
		}
		if(play.hp+200>play.max_hp){
			print("hp过多,不需要超级云南白药了\n");
			break;
		}
		play.hp+=200;
		super_medicine--;
		break;
		case 5:if(!vs_now){
			print("非战斗状态,不能使用手雷\n");
			break;
		}
		if(boom==0){
			print("没有手雷了\n");
			break;
		}
		print("使用手雷,敌人hp减少100");
		guai.hp-=100;
		boom--;
		print("\n\n");
		cout << guai.name;
		print("反击!!你的hp减少");
		cout << guai.gongji/3-play.fangyu;
		play.hp-=guai.gongji/3-play.fangyu;
		cout << "\n";
		break;
		case 6:if(!vs_now){
			print("非战斗状态,不能使用毒标\n");
			break;
		}if(dead==0){
			print("没有毒标了\n");
			break;
		}
		print("使用毒标,敌人hp减少200\n\n");
		guai.hp-=200;
		cout << guai.name;
		dead--;
		print("反击!!你的hp减少");
		cout << guai.gongji/3-play.fangyu;
		play.hp-=guai.gongji/3-play.fangyu;
		cout << "\n";
		break;
		case 7:if(!vs_now){
			print("非战斗状态,不能使用手抛式原子弹\n");
			break;
		}
		if(hoom==0){
			print("没有手抛式原子弹了\n");
			break;
		}
		hoom--;
		print("使用手抛式原子弹,敌人hp减少500\n\n");
		char data[100];
		guai.hp-=500;
		cout << guai.name;
		sprintf(data,"反击!!你的hp减少了%d",guai.gongji/3-play.fangyu);
		play.hp-=guai.gongji/3-play.fangyu;
		printf(data);
	}
}
void check(){
	char data[200];
	sprintf(data,"\n\n\n\n====================\n攻击力%d+%d   防御力%d+%d     hp:%d/%d\n\n等级%d   还需要%d经验升级    金币%d\n",play.gongji,play.thing_gong,play.fangyu,play.thing_fang,play.hp,play.max_hp,play.level,play.max_exp-play.exp,play.gold);
	printf(data);
}
void vs(){
	srand(rand());
	vs_now=true;
	while(play.hp>0&&guai.hp>0){
		print("\n\n\n\n\n\n\n=====================================\n\n\n要怎么办?\n1.攻击   2.物品    3.查看状态   4.逃跑\n",0);
		number=getint();
		switch(number){
			case 1:cout << play.name;
			print("攻击!!敌人hp减少");
			cout << play.gongji+play.thing_gong-guai.fangyu/3;
			guai.hp-=play.gongji+play.thing_gong-guai.fangyu/3;
			print("\n\n");
			cout << guai.name;
			print("反击!你的hp减少");
			cout << guai.gongji/3-play.fangyu-play.thing_fang;
			play.hp-=guai.gongji/3-play.fangyu-play.thing_fang;
			cout << "\n";
			break;
			case 2:choose_things();break;
			case 3:check();break;
			case 4:int s=rand()%10;
			srand(rand());
			if(s<4){
				print(play.name);
				print("逃跑了~\n");
				return ;
			}
			else{
				print(play.name);
				print("逃跑失败!\n");
			}
			break;
		}
		print("\n\n\n\n\n");
	}
	if(play.hp==0){
		print(play.name);
		print("战死!!金币掉落");
		cout << guai.gold_koi;
		play.gold-=guai.gold_koi;
		if(play.gold<0){
			play.gold=0;
		}
		play.hp=play.max_hp;
	}
	else{
		if(guai.name=="使徒"){
			print("战斗胜利,救出公主!!");
			frees=true;
			return ;
		}
		else{
			print("战斗胜利!!!获得经验100,金币");
			cout << guai.gold_ko;
			play.exp+=100;
			play.gold+=guai.gold_ko;
			int s=rand()%10;
			print("\n\n\n");
			if(s<4){
				print("从敌人尸体中发现");
				cout << guai.thing;
				switch(guai.thing_number){
					case 0:gold_clothes++;break;
					case 1:arm++;break;
					case 2:tie++;break;
					case 3:fang++;break;
					case 4:small++;break;
					case 5:big++;break;
					case 6:good++;break;
				}
				print("\n\n\n\n");
			}
			while(play.exp>=play.max_exp){
				print(play.name);
				print("升级!!攻击力+3,防御力+2,hp上限+100\n");
				play.gongji+=3;
				play.fangyu+=2;
				play.max_hp+=100;
				play.exp-=play.max_exp;
				play.max_exp+=100;
				print("\n\n");
			}
			play.hp=play.max_hp;
		}
	}
}
int zbg(int number,int power,string name){
	if(number==0){
		print("没有");
		print(name);
		print("了\n");
		return 0;
	}
	print("拿起了");
	print(name);
	play.thing_gong=power;
	return 0;

}
int zbf(int number,int power,string name){
	if(number==0){
		print("没有");
		print(name);
		print("了\n");
		return 0;
	}
	print("穿上了");
	print(name);
	play.thing_fang=power;
	return 0;

}
int drink(int x){
	if(play.goldplay.max_hp){
		print("hp太多,不用喝酒\n");
		return 0;
	}
	play.hp+=x;
	play.gold-=x;
	return 0;
}
int cs(){
	srand(time(0));
	int bar=rand(),hotel=rand(),forest_1=rand(),forest_2=rand(),forest_3=rand(),grass_1=rand(),grass_2=rand(),grass_3=rand();
	print("这是一个勇者的世界!!雅丽萨斯国的罗茜公主被陌生人绑架了!!\n\n\n伟大的勇者啊,拿起武器,营救公主!!!\n\n\n");
	play.name=UsersName;
	if(play.name=="EVA初号机"){
		print("封印多年的EVA初号机啊,你终于可以重见天日了!!!\n\n\nEVA初号机,重新启动...随即,暴走!!!\n");
		play.fangyu+=10000;
		play.gongji+=10000;
		play.max_hp+=10000;
		play.hp+=10000;
	}
	if(play.name=="seven"||play.name=="eason"||play.name=="carolyn"){
		print("曾救出公主的勇士啊,你终于回来了!!!随即,暴走!!!!!\n");
		play.fangyu+=10000;
		play.gongji+=10000;
		play.max_hp+=10000;
		play.hp+=10000;
	}
	bool say=false;
	while(!frees){
		print("\n\n\n\n===========================================\n\n\n\n\n要做什么?\n1.移动  2.物品   3.对话   4.查看状态  5.装备  0.退出\n",0);
		number=getint();
		switch(number){
			case 1:print("\n\n\n\n\n\n================================================\n\n\n要去哪里?\n1.酒吧   2.旅店    3.森林一层   4.森林二层   5.森林三层   6.草原一层   7.草原二层   8.草原三层\n",0);
			number=getint();
			switch(number){
				case 1:plase=bar;break;
				case 2:plase=hotel;
				print("要住店吗?200个金币,可以让你hp变满哦\n1.是  0.否");
				number=getint();
				if(number){
					if(play.gold<200){
						print("金币不够!!!");
						break;
					}
					play.gold-=200;
					print("第二天了\n\thp满了\n\t\t下次再来!");
					int s=rand()%10;
					if(s<4){
						print("临走时发现其他客人遗留的");
						s=rand()%8+1;
						if(s<=3){
							print("止血草");
							grass++;
						}else if(s<=5){
							print("急救包");
							bag++;
						}
						else if(s<=7){
							print("云南白药");
							medicine++;
						}
						else{
							print("超级云南白药");
							super_medicine++;
						}
						print("一个和");
						s=rand()%6+1;
						if(s<=3){
							print("手雷");
							boom++;
						}else if(s<=5){
							print("毒标");
							dead++;
						}
						else{
							print("手抛式原子弹");
							hoom++;
						}
						print("一个\n");
					}
					play.hp=play.max_hp;
					break;
				}
				else{
					print("下次再来!\n");
					break;
				}
				case 3:plase=forest_1;
				int s;
				s=rand()%10;
				if(s<7){
					guai=xiyi;
					print("森林蜥蜴扑了过来!\n");
					vs();
				}
				else if(s<9){
					guai=whitch;
					print("森林女巫扑了过来!!\n");
					vs();
				}
				else{
					print("这里安全\n");
				}
				break;
				case 4:plase=forest_2;
				s=rand()%10;
				if(s<7){
					guai=whitch;
					print("森林女巫扑了过来!!\n");
					vs();
				}
				else if(s<9){
					guai=strongman;
					print("森林巨人扑了过来!!!\n");
					s=rand()%10;
					if(s<8){
						guai.thing="黄金圣衣";
						guai.thing_number=0;
					}
					else{
						guai.thing="巨人之臂";
						guai.thing_number=1;
					}
					vs();
				}
				else{
					print("这里安全\n");
				}
				break;
				case 5:plase=forest_3;
				s=rand()%10;
				if(s<7){
					guai=strongman;
					print("森林巨人扑了过来!!!\n");
					s=rand()%10;
					if(s<8){
						guai.thing="黄金圣衣";
						guai.thing_number=0;
					}
					else{
						guai.thing="巨人之臂";
						guai.thing_number=1;
					}
					vs();
				}
				else if(s<9){
					guai=big_strongman;
					print(guai.name);
					print("扑了过来!!!!\n");
					vs();
				}
				else{
					print("这里安全\n");
				}
				break;
				case 6:plase=grass_1;
				s=rand()%10;
				if(s<7){
					guai=bee;
					print("草原黄蜂扑了过来!\n");
					vs();
				}else if(s<9){
					guai=horse;
					print("草原野马扑了过来!!\n");
					vs();
				}
				else{
					print("这里安全\n");
				}
				break;
				case 7:plase=grass_2;
				s=rand()%10;
				if(s<7){
					guai=horse;
					print("草原野马扑了过来!!\n");
					vs();
				}else if(s<9){
					guai=lion;
					print("草原雄狮扑了过来!!!\n");
					vs();
				}
				else{
					print("这里安全\n");
					vs();
				}
				break;
				case 8:plase=grass_3;
				s=rand()%10;
				if(s<7){
					guai=lion;
					print("草原雄狮扑了过来!!!\n");
					vs();
				}else if(s<9){
					if(arm==0){
						if(say){
							print("神秘老人:加油吧,年轻人,争取获得巨人之臂!^_^\n");
						}
						else{
							print("神秘老人:如果你有巨人之臂,我就告诉你公主的下落哦!^_^\n");
						}
					}
					else{
						print("神秘老人:年轻人,做的不错。不过……嘿嘿,你上当了。巨人之臂我要了,公主你也别想带走!!!\n\n\n");
						guai=shitu;
						print("使徒扑了过来!!!!\n");
						vs();
					}
				}
				else{
					print("这里安全\n");
				}
			}
			break;
			case 2:choose_things();break;
			case 3:if(plase==bar){
				print("要和谁说话?\n1.红发女郎    2.赏金猎人    3.酒吧老板\n");
				cin >> number;
				switch(number){
					case 1:print("红发女郎:吧台那边的猎人好帅啊!!^_^\n");break;
					case 2:if(clothes==0){
						print("赏金猎人:你要救公主啊,好胆量!不过外面的草原和丛林很险恶,而且越深越危险。这是匕首和布衣,对你会有帮助的。\n\n");
						print(play.name);
						print("心想:这位大叔人真好啊!\n");
						clothes++;
						very_small++;
						break;
					}
					else{
						print("赏金猎人:加油吧,年轻人,不要被外面的丛林和草原所吓倒!^_^");
						break;
					}
					case 3:print("酒吧老板:要喝点什么?1.二锅头25金币,hp+25    2.xo酒50金币,hp+50      3.人头马面100金币,hp+100    4.青花郎200金币,hp+200     5.茅台酒500金币,hp+500\n");
					number=getint();
					switch(number){
						case 1:drink(25);break;
						case 2:drink(50);break;
						case 3:drink(100);break;
						case 4:drink(200);break;
						case 5:drink(500);break;
					}
					break;
				}
				break;
			}
			else{
				print("这里好像没人可以聊天");
				break;
			}
			break;
			case 4:check();break;
			case 5:print("选择要更换的装备:\n\n");
			#undef data
			char data[100];
			sprintf(data,"1.匕首%d个    2.剑%d个     3.碧血剑%d个     4.绝世好剑%d个      \n5.布衣%d个     6.铁甲%d个     7.防弹衣%d个         8.黄金圣衣%d个\n",very_small,small,big,good,clothes,tie,fang,gold_clothes);
			printf(data);
			number=getint();
			switch(number){
				case 1: zbg(very_small,30,"匕首");break;
				case 2: zbg(small,50,"剑");break;
				case 3: zbg(big,100,"碧血剑");break;
				case 4: zbg(good,200,"绝世好剑");break;
				case 5: zbf(clothes,30,"布衣");break;
				case 6: zbf(tie,50,"铁甲");break;
				case 7: zbf(fang,100,"防弹衣");break;
				case 8: zbf(gold_clothes,200,"黄金圣衣");break;
			}
			break;
			case 0: print("确定退出游戏?\n1.是    0.否");
			number=getint();
			if(number){
				return 0;
			}
			break;
		}
	}
	system("pause");
	return 0;
}
int ctjdb()
{
    int a,b,s=0,t;
    cout<<"请选择计算机的速度,一个整数,越大越慢。";
    t=getint();
    for(;;)
    {
        cout<<"请选择出什么:\n1.石头\n2.剪刀\n3.布\n4.不玩了\n";
        for(int i=1;i<=t;i++)
          b=rand()%3;
        b+=1;
        a=getint();
        if(a==4)
          break;
        if(b==1)
          cout<<"计算机出石头,";
        if(b==2)
          cout<<"计算机出剪刀,";
        if(b==3)
          cout<<"计算机出布,";
        if(a+1==b||a-2==b)
          cout<<"你赢了!!\n";
        if(a-1==b||a+2==b)
          cout<<"你输了!!\n";
        if(a==b)
          cout<<"平局。。\n";
        s++;
    }
    cout<<"下次再来哟~~";
    return 0;
}
int n,m;
bool c[100005];
int cq3_1()
{
    cout<<"猜数 3.1\n";
    srand(time(NULL));
    cout<<"==============================================================\n几人猜数(只支持100000人以内)??\n";
    n=getint();
    cout<<"==============================================================\n0~几??\n";
    m=getint();
    for(;;)
    {
        cout<<"==============================================================\n开始!!!\n";
        int x=rand()%(m+1),y,h=0,e=m,t=rand()%n;
        bool hh=1,ee=1;
        do
        {
            cout<<"\n==============================================================\n";
            cout<n?n:0;
            if(!c[t])
              cout<x)
                {
                    cout<<"大了";
                    e=y;
                    continue;
                }
                if(ye)
            {
                cout<<"浪费机会!!!";
                continue;
            }
            if(!h&&!y)
              if(hh)
                hh=0;
              else {cout<<"浪费机会!!!";continue;}
            if(e==m&&y==m)
              if(ee)
                ee=0;
              else {cout<<"浪费机会!!!";continue;}
            if(y>x)
            {
                cout<<"大了";
                e=y;
            }
            if(yn?n:0;
            if(!c[t])
              cout<x)
                {
                    cout<<"大了";
                    e=y; 
                    continue;
                }
                if(y=e)
            {
                cout<<"浪费机会!!!";
                continue;
                if(!h&&!y)
                  if(hh)
                    hh=0;
                else
                {
                    cout<<"浪费机会!!!";
                    continue;
                }
                if(e==m&&y==m)
                  if(ee)
                    ee=0;
                else
                {
                    cout<<"浪费机会!!!";
                    continue;
                }
            }
            if(y>x)
            {
                cout<<"大了";
                e=y; 
            }
            if(y=257)
            printf("□");
            else
            {
                co(f[j][i]+8);
                for(i1=1;i1<=7;i1++)
                {
                    if(j==x4[i1][hd[i1]]&&i==y4[i1][hd[i1]])
                    {
                        co(f[j][i]+4);
                    }
                }
                printf("█");//蛇身
                co(7);
            }
        }
        printf("|");
        printf("\n");
    }
    printf(" ");
    for(i=0;i9998)
                {
                    er=2;
                    goto re;
                }
                if(rand()%3==0&&djx==0&&djy==0)
                {
                    do
                    {
                        djx=rand()%m+1;
                        djy=rand()%n+1;         //生成道具
                    }while(f[djx][djy]!=0);
                    typ=1;
                    f[djx][djy]=typ+256;
                }
                er=0;
            }
        }
        if(x4[b1][hd[b1]]==djx&&y4[b1][hd[b1]]==djy)
        {
            f[djx][djy]=b1;
            djx=0;
            djy=0;
            if(rand()%7==0)
            sc*=1.5;
            else if(rand()%6==1)
            sc/=1.5;
            else if(rand()%5==2)
            {
                t*=1.5;
                sc*=0.9;
            }
            else if(rand()%4==3)
            {
                t/=1.5;
                sc*=1.1;
            }
            else
            {
                rm[b1]=rand()%3+2;
                sc=sc+rand()%10-4;
            }
        }
    re:return er;
}
void do1(int b1)
{
    int d1=d[b1];
        hd[b1]++;
        x4[b1][hd[b1]]=x4[b1][hd[b1]-1];
        y4[b1][hd[b1]]=y4[b1][hd[b1]-1];
        if(d1==0)
        {
            y4[b1][hd[b1]]--;
        }
        if(d1==1)
        {
            y4[b1][hd[b1]]++;
        }
        if(d1==2)
        {
            x4[b1][hd[b1]]--;//移动
        }
        if(d1==3)
        {
            x4[b1][hd[b1]]++;
        }
        if(x4[b1][hd[b1]]<1)
        x4[b1][hd[b1]]=m;
        else if(y4[b1][hd[b1]]<1)
        y4[b1][hd[b1]]=n;
        else if(x4[b1][hd[b1]]>m)//穿墙
        x4[b1][hd[b1]]=1;
        else if(y4[b1][hd[b1]]>n)
        y4[b1][hd[b1]]=1;
        if(!vt)
        i3=check(b1);
        if(i3==2)
        {
            vt=1;//停止检测
            sc+=(rand()%10)/10.0;
        }
        else if(i3==1)//检测是否吃到东西
        {
            f[x4[b1][tl[b1]]][y4[b1][tl[b1]]]=0;//尾动
            tl[b1]++;
        }
        for(i=tl[b1];isc?hsc:sc;
            fprintf(f3,"%lf\n",hsc);
            fprintf(f3,"%d %d %d %d %d\n",n,m,v,t1,k1);
            fclose(f3);
            f3=fopen("snake.log","a");
            fprintf(f3,"%lf\n",sc);
            fprintf(f3,"%d %d %d %d %d\n\n",n,m,v,t1,k1);
            fclose(f3);
            if(MessageBoxA(NULL,TEXT("想在玩一局吗"),TEXT("snake"),MB_YESNO|MB_SYSTEMMODAL)==IDYES)//弹出在玩一局
            {
                ett=1;//结束线程
                Sleep(1);
                system("snake");//不要脸的重新开始
            }
            exit(0);
        }
        f[x4[b1][hd[b1]]][y4[b1][hd[b1]]]=b1;//头动
    return;
}
void init()
{
    system("mode con cols=180 lines=180");
    system("title SnakeBata0.6.3");
    printf("自定义(Y)/默认(N)/上一次(L)?Y/N/L\n");
    ch=getch();
    f3=fopen("snake.ini","a");
    fclose(f3);
    f3=fopen("snake.ini","r");
    fscanf(f3,"%lf",&hsc);
    if(ch=='L'||ch=='l')
    fscanf(f3,"%d %d %d %d %d",&n,&m,&v,&t,&k1);
    fclose(f3);
    if(ch=='y'||ch=='Y')
    {
        printf("输入行数 列数 食物数 速度 蛇数\n(一个一个输,输完了一个后别忘了换行哦亲~)");
        //scanf("%d %d %d %d %d",&n,&m,&v,&t,&k1);
        n=getint4();
        getint4(&m);
        getint4(&v);
        t=getint();
        k1=getint4();
        k=8-k1;
        if(k<0)
        k=1;
    }
    f3=fopen("snake.ini","w");
    fprintf(f3,"%lf\n",hsc);
    fprintf(f3,"%d %d %d %d %d",n,m,v,t,k1);
    fclose(f3);
    t1=t;
    srand(time(NULL));
    pthread_create (&tid,NULL,f1,NULL);
    pthread_create (&tim,NULL,f2,NULL);
    for(i=7;i>=k;i--)
    {
        hd[i]=1;
        tl[i]=1;
        x4[i][1]=rand()%m+1;//随机生成蛇的初始位置
        y4[i][1]=rand()%n+1;
        f[x4[i][1]][y4[i][1]]=i;
    }
    for(i=1;i<=v;i++)
    {
        do
        {
            fdx[i]=rand()%m+1;//随机生成食物
            fdy[i]=rand()%n+1;
        }while(f[fdx[i]][fdy[i]]!=0);
        f[fdx[i]][fdy[i]]=8;
    }
}
int tcs()
{
	n=m=15;
    init();
    system("cls");
    for(;;)//主循环
    {
        d2[6]=d[6];
        d2[7]=d[7];
        Sleep(t);
        for(i1=7;i1>=k;i1--)
        {
            if(rm[i1]==0)
            do1(i1);
            else
            {
                if(hd[i1]-tl[i1]>5)
                {
                    f[x4[i1][tl[i1]]][y4[i1][tl[i1]]]=0;
                    tl[i1]++;
                    rm[i1]--;
                }
                else
                {
                    rm[i1]=0;
                    do1(i1);
                }
            }
            for(i=tl[i1];i<=hd[i1];i++)
            f[x4[i1][tl[i1]]][y4[i1][tl[i1]]]=i1;
        }
        if(t>t1)
        t--;
        else if(t='a'){
    	x-='a'-'A';
	}
    if (x!='H'&&x!='U'){cout<<"操作失败!"<'5'){cout<<"操作失败"<'5'){cout<<"操作失败!"<'5'||(!(sss&(1<<(hc-48-1))))){
        system("cls");
        cout<<"操作失败!"<'5'||(!(sss&(1<<(uc-1-48))))){
        system("cls");
        cout<<"操作失败!"<=40){
            kill-=40;
            hp=5;
            cout<<"回复成功!"<=100){
            kill-=100;
            system("cls");
            for (int i=1;i<=n;i++){
                for (int j=1;j<=n;j++)
                    if (mp[i][j].b)cout<1&&mp[xx-1][yy].b==0)xx--;
        if (cc=='A'&&yy>1&&mp[xx][yy-1].b==0)yy--;
        if (cc=='S'&&xxi;i++){
                    ccc[xx-i][yy]=1;
                    if (mp[xx-i][yy].b)gold+=rand()%3,kill++,killl++;
                    mp[xx-i][yy].b=0;
                }
                xx=max(xx-3,1);
            }
            if (inc=='J'){
                memset(ccc,0,sizeof(ccc));
                for (int i=1;i<=3&&yy>i;i++){
                    ccc[xx][yy-i]=1;
                    if (mp[xx][yy-i].b)gold+=rand()%3,kill++,killl++;
                    mp[xx][yy-i].b=0;
                }
                yy=max(yy-3,1);
            }
            if (inc=='K'){
                memset(ccc,0,sizeof(ccc));
                for (int i=1;i<=3&&xx+i<=n;i++){
                    ccc[xx+i][yy]=1;
                    if (mp[xx+i][yy].b)gold+=rand()%3,kill++,killl++;
                    mp[xx+i][yy].b=0;
                }
                xx=min(xx+3,n);
            }
            if (inc=='L'){
                memset(ccc,0,sizeof(ccc));
                for (int i=1;i<=3&&yy+i<=n;i++){
                    ccc[xx][yy+i]=1;
                    if (mp[xx][yy+i].b)gold+=rand()%3,kill++,killl++;
                    mp[xx][yy+i].b=0;
                }
                yy=min(yy+3,n);
            }
            ccc[nnx][nny]=1;
            warout(nnx,nny);
            ucd=cd[uc]+1;
        }
        if (cc=='U'&&ucd==0&&uc==5){
            cout<<"请选择移动方向,输入I或J或K或L"<1)ccc[xx-1][yy]=1;
                if (xx>2)ccc[xx-2][yy]=1;
                warout(xx,yy);
                if (xx>1&&mp[xx-1][yy].b){
                    if (!mp[xx-1][yy].b)continue;
                    mp[xx-1][yy].hp-=8;
                    if (mp[xx-1][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx-1][yy].b=0;
                }
                if (xx>2&&mp[xx-2][yy].b){
                    if (!mp[xx-2][yy].b)continue;
                    mp[xx-2][yy].hp-=8;
                    if (mp[xx-2][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx-2][yy].b=0;
                }
            }
            if (hc==1&&cc=='J'){
                if (yy>1)ccc[xx][yy-1]=1;
                if (yy>2)ccc[xx][yy-2]=1;
                warout(xx,yy);
                if (yy>1&&mp[xx][yy-1].b){
                    if (mp[xx][yy-1].b)mp[xx][yy-1].hp-=8;
                    if (mp[xx][yy-1].b&&mp[xx][yy-1].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][yy-1].b=0;
                }
                if (yy>2&&mp[xx][yy-2].b){
                    if (mp[xx][yy-2].b)mp[xx][yy-2].hp-=8;
                    if (mp[xx][yy-2].hp<=0&&mp[xx][yy-2].b)gold+=rand()%3,kill++,killl++,mp[xx][yy-2].b=0;
                }
            }
            if (hc==1&&cc=='K'){
                if (xx+1<=n)ccc[xx+1][yy]=1;
                if (xx+2<=n)ccc[xx+2][yy]=1;
                warout(xx,yy);
                if (xx+1<=n&&mp[xx+1][yy].b){
                    if (mp[xx+1][yy].b)mp[xx+1][yy].hp-=8;
                    if (mp[xx+1][yy].hp<=0&&mp[xx+1][yy].b)gold+=rand()%3,kill++,killl++,mp[xx+1][yy].b=0;
                }
                if (xx+2<=n&&mp[xx+2][yy].b){
                    if (mp[xx+2][yy].b)mp[xx+2][yy].hp-=8;
                    if (mp[xx+2][yy].hp<=0&&mp[xx+2][yy].b)gold+=rand()%3,kill++,killl++,mp[xx+2][yy].b=0;
                }
            }
            if (hc==1&&cc=='L'){
                if (yy+1<=n)ccc[xx][yy+1]=1;
                if (yy+2<=n)ccc[xx][yy+2]=1;
                warout(xx,yy);
                if (yy+1<=n&&mp[xx][yy+1].b){
                    if (mp[xx][yy+1].b)mp[xx][yy+1].hp-=8;
                    if (mp[xx][yy+1].hp<=0&&mp[xx][yy+1].b)gold+=rand()%3,kill++,killl++,mp[xx][yy+1].b=0;
                }
                if (yy+2<=n&&mp[xx][yy+2].b){
                    if (mp[xx][yy+2].b)mp[xx][yy+2].hp-=8;
                    if (mp[xx][yy+2].hp<=0&&mp[xx][yy+2].b)gold+=rand()%3,kill++,killl++,mp[xx][yy+2].b=0;
                }
            }
            if (hc==2&&cc=='I'){
                for (int i=xx-1;i;i--)ccc[i][yy]=1;
                warout(xx,yy);
                for (int i=xx-1;i;i--){
                    if (!mp[i][yy].b)continue;
                    mp[i][yy].hp-=3+rand()%3;
                    if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                }
            }
            if (hc==2&&cc=='J'){
                for (int i=yy-1;i;i--)ccc[xx][i]=1;
                warout(xx,yy);
                for (int i=yy-1;i;i--){
                    if (!mp[xx][i].b)continue;
                    mp[xx][i].hp-=3+rand()%3;
                    if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                }
            }
            if (hc==2&&cc=='K'){
                for (int i=xx+1;i<=n;i++)ccc[i][yy]=1;
                warout(xx,yy);
                for (int i=xx+1;i<=n;i++){
                    if (!mp[i][yy].b)continue;
                    mp[i][yy].hp-=3+rand()%3;
                    if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                }
            }
            if (hc==2&&cc=='L'){
                for (int i=yy+1;i<=n;i++)ccc[xx][i]=1;
                warout(xx,yy);
                for (int i=yy+1;i<=n;i++){
                    if (!mp[xx][i].b)continue;
                    mp[xx][i].hp-=3+rand()%3;
                    if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                }
            }
            if (hc==3&&cc=='I'){
                for (int i=xx-1;i;i--){
                    ccc[i][yy-1]=1;
                    ccc[i][yy]=1;
                    ccc[i][yy+1]=1;
                }
                warout(xx,yy);
                for (int i=xx-1;i;i--){
                    if (mp[i][yy].b){
                        mp[i][yy].hp-=2+rand()%2;
                        if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                    }
                    if (mp[i][yy-1].b){
                        mp[i][yy-1].hp-=2+rand()%2;
                        if (mp[i][yy-1].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy-1].b=0;
                    }
                    if (mp[i][yy+1].b){
                        mp[i][yy+1].hp-=2+rand()%2;
                        if (mp[i][yy+1].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy+1].b=0;
                    }
                }
            }
            if (hc==3&&cc=='J'){
                for (int i=yy-1;i;i--){
                    ccc[xx][i]=1;
                    ccc[xx-1][i]=1;
                    ccc[xx+1][i]=1;
                }
                warout(xx,yy);
                for (int i=yy-1;i;i--){
                    if (mp[xx][i].b){
                        mp[xx][i].hp-=2+rand()%2;
                        if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                    }
                    if (mp[xx-1][i].b){
                        mp[xx-1][i].hp-=2+rand()%2;
                        if (mp[xx-1][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx-1][i].b=0;
                    }
                    if (mp[xx+1][i].b){
                        mp[xx+1][i].hp-=2+rand()%2;
                        if (mp[xx+1][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx+1][i].b=0;
                    }
                }
            }
            if (hc==3&&cc=='K'){
                for (int i=xx+1;i<=n;i++){
                    ccc[i][yy-1]=1;
                    ccc[i][yy]=1;
                    ccc[i][yy+1]=1;
                }
                warout(xx,yy);
                for (int i=xx+1;i<=n;i++){
                    if (mp[i][yy].b){
                        mp[i][yy].hp-=2+rand()%2;
                        if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                    }
                    if (mp[i][yy-1].b){
                        mp[i][yy-1].hp-=2+rand()%2;
                        if (mp[i][yy-1].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy-1].b=0;
                    }
                    if (mp[i][yy+1].b){
                        mp[i][yy+1].hp-=2+rand()%2;
                        if (mp[i][yy+1].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy+1].b=0;
                    }
                }
            }
            if (hc==3&&cc=='L'){
                for (int i=yy+1;i<=n;i++){
                    ccc[xx-1][i]=1;
                    ccc[xx][i]=1;
                    ccc[xx+1][i]=1;
                }
                warout(xx,yy);
                for (int i=yy+1;i<=n;i++){
                    if (mp[xx][i].b){
                        mp[xx][i].hp-=2+rand()%2;
                        if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                    }
                    if (mp[xx-1][i].b){
                        mp[xx-1][i].hp-=2+rand()%2;
                        if (mp[xx-1][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx-1][i].b=0;
                    }
                    if (mp[xx+1][i].b){
                        mp[xx+1][i].hp-=2+rand()%2;
                        if (mp[xx+1][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx+1][i].b=0;
                    }
                }
            }
            if (hc==4&&cc=='I'){
                for (int i=xx-1;i;i--)ccc[i][yy]=1;
                warout(xx,yy);
                for (int i=xx-1;i;i--){
                    if (!mp[i][yy].b)continue;
                    int r=rand()%3;
                    mp[i][yy].hp-=mp[i][yy].hp*r;
                    if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                }
            }
            if (hc==4&&cc=='J'){
                for (int i=yy-1;i;i--)ccc[xx][i]=1;
                warout(xx,yy);
                for (int i=yy-1;i;i--){
                    if (!mp[xx][i].b)continue;
                    int r=rand()%3;
                    mp[xx][i].hp-=mp[xx][i].hp*r;
                    if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                }
            }
            if (hc==4&&cc=='K'){
                for (int i=xx+1;i<=n;i++)ccc[i][yy]=1;
                warout(xx,yy);
                for (int i=xx+1;i<=n;i++){
                    if (!mp[i][yy].b)continue;
                    int r=rand()%3;
                    mp[i][yy].hp-=mp[i][yy].hp*r;
                    if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                }
            }
            if (hc==4&&cc=='L'){
                for (int i=yy+1;i<=n;i++)ccc[xx][i]=1;
                warout(xx,yy);
                for (int i=yy+1;i<=n;i++){
                    if (!mp[xx][i].b)continue;
                    int r=rand()%3;
                    mp[xx][i].hp-=mp[xx][i].hp*r;
                    if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                }
            }
            if (hc==5&&cc=='I'){
                int i;
                for (i=xx;i;i--)
                    if (mp[i][yy].b)break;
                mp[i][yy].hp-=5;
                if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                if (i){
                    memset(ccc,0,sizeof(ccc));
                    ccc[i][yy]=1;
                    warout(xx,yy);
                    if (rand()%10==0){
                        memset(ccc,0,sizeof(ccc));
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                if (mp[i][j].b){
                                    mp[i][j].hp--;
                                    if (mp[i][j].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][j].b=0;
                                }
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                ccc[i][j]=1;
                        warout(xx,yy);
                    }
                }
            }
            if (hc==5&&cc=='J'){
                int i;
                for (i=yy;i;i--)
                    if (mp[xx][i].b)break;
                mp[xx][i].hp-=5;
                if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                if (i){
                    memset(ccc,0,sizeof(ccc));
                    ccc[xx][i]=1;
                    warout(xx,yy);
                    if (rand()%10==0){
                        memset(ccc,0,sizeof(ccc));
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                if (mp[i][j].b){
                                    mp[i][j].hp--;
                                    if (mp[i][j].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][j].b=0;
                                }
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                ccc[i][j]=1;
                        warout(xx,yy);
                    }
                }
            }
            if (hc==5&&cc=='K'){
                int i;
                for (i=xx;i<=n;i++)
                    if (mp[i][yy].b)break;
                mp[i][yy].hp-=5;
                if (mp[i][yy].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][yy].b=0;
                if (i<=n){
                    memset(ccc,0,sizeof(ccc));
                    ccc[i][yy]=1;
                    warout(xx,yy);
                    if (rand()%10==0){
                        memset(ccc,0,sizeof(ccc));
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                if (mp[i][j].b){
                                    mp[i][j].hp--;
                                    if (mp[i][j].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][j].b=0;
                                }
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                ccc[i][j]=1;
                        warout(xx,yy);
                    }
                }
            }
            if (hc==5&&cc=='L'){
                int i;
                for (i=yy;i<=n;i++)
                    if (mp[xx][i].b)break;
                mp[xx][i].hp-=5;
                if (mp[xx][i].hp<=0)gold+=rand()%3,kill++,killl++,mp[xx][i].b=0;
                if (i<=n){
                    memset(ccc,0,sizeof(ccc));
                    ccc[xx][i]=1;
                    warout(xx,yy);
                    if (rand()%10==0){
                        memset(ccc,0,sizeof(ccc));
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                if (mp[i][j].b){
                                    mp[i][j].hp--;
                                    if (mp[i][j].hp<=0)gold+=rand()%3,kill++,killl++,mp[i][j].b=0;
                                }
                        for (int i=1;i<=n;i++)
                            for (int j=1;j<=n;j++)
                                ccc[i][j]=1;
                        warout(xx,yy);
                    }
                }
            }
        }
        memset(book,0,sizeof(book));
        for (int i=1;i<=n;i++)
            for (int j=1;j<=n;j++){
                if (book[i][j])continue;
                if (!mp[i][j].b)continue;
                int movex[4]={1,0,0,-1};
                int movey[4]={0,1,-1,0};
                int s=rand()%4;
                int mmm=rand()%4;
                int nx,ny;
                if (!mmm)nx=i+movex[s],ny=j+movey[s];
                else{
                    nx=i,ny=j;
                    int mmmm=rand()%2;
                    if (nx==xx)mmmm=1;
                    if (nx==yy)mmmm=0;
                    if (mmmm==0){
                        if (nxxx)nx--;
                    }
                    if (mmmm==1){
                        if (nyyy)ny--;
                    }
                }
                if (nx<1||ny<1||nx>n||ny>n)continue;
                book[nx][ny]=1;
                if (nx==xx&&ny==yy){
                    hp-=2;
                    mp[i][j].b=0;
                    system("cls");
                    for (int i=1;i<=n;i++){
                        for (int j=1;j<=n;j++)
                            if (mp[i][j].b)cout<=5){
            system("cls");
                for (int i=1;i<=n;i++){
                    for (int j=1;j<=n;j++)
                        if (mp[i][j].b)cout<>usertot;
    for (int i=1;i<=usertot;i++)cin>>user[i].name>>user[i].namelen>>user[i].password>>user[i].passwordlen>>user[i].gold>>user[i].h>>user[i].u;
   // enter();
    freopen("CON", "r", stdin);
    cout<<"登陆请按1"< name;
string getint2(string *index){
	char c;
	string a;
	while((c=getch())!=13){
		cout << "*";
		a.push_back(c);
	}
	*index=a;
	return a;
}
int dl();
int zc(){
	system("cls");
	cout << "用户名(最多不超过20个字符,不建议使用中文):";
	//system("pause");
	string name2;
	cin >> name2;
	cout << "密码(最多不超过20个字符,建议用上数字、大写字母、小写字母、特殊字符(%、$、#等),不建议使用中文、不支持backspace和delate):";
//	system("pause");
	string key;
	getint2(&key);
	cout << "\n确认密码:";
	string key2;
//	system("pause");
	getint2(&key2);
	if(key==key2){
		cout << "注册成功!注册信息存储中......\n";
		FILE *messagein;
		messagein=fopen("GC_servy.ini","a");
		fclose(messagein);
		messagein=fopen("GC_servy.ini","r");
		int n;
		fscanf(messagein,"%d",&n);
		for(int i=0;i> a.name >> a.key;
			name.push(a);
		}
		name.push(Users(key,name2));
		n++;
		if(n==101){
			name.pop();
			n--;
		}
		fclose(messagein);
		messagein=fopen("GC_servy.ini","w");
		fprintf(messagein,"%d\n",n);
		char namechar[100],keychar[100];
		for(int i=0;i> name2;
	string key2;
	cout << "密码:\n";
//	system("pause");
	getint2(&key2);
	cout << "\n";
	FILE *STDIN; 
	STDIN=fopen("GC_servy.ini","a");
	fclose(STDIN);
	STDIN=fopen("GC_servy.ini","r");
	int n;
	fscanf(STDIN,"%d",&n);
	string key;
	char name3[20];
	int i;
	for(i=0;i> name3 >> key;
		fscanf(STDIN,"%s %s",name3,key.c_str());
		if(name3==name2){
			i--;
			break;
		}
	}
	fclose(STDIN);
	if(i==n-1){
		cout << "用户名不存在,可能因为电脑内存不够,自动清理一些注册信息,(电脑最多容纳100条注册信息)敬请谅解。\n\n 1.重新登录   2.重新注册";
		//system("pause");
		int number;
		number = getch();
		while(number>2){
			cout << "输入错误!!!重新输入!!!\n";
		//	system("pause");
			number=getch();
		}
		if(number==1){
			dl();
			return 0;
		}
		else{
			zc();
			return 0;
		}
	}
	if(key2==key){
		cout << "登陆成功!~";
		Sleep(100);
		UsersName=name3;
		return 0;
	}
	else{
		cout << "密码错误!重新登录!!";
		Sleep(100);
		dl();
		return 0;
	}
}
void enter(){
	print("\n\n\n\n\n\n\n\n                               ",0);
	print("GC Server1.0",100);
	print("\n                                         ",0);
	print("——by eason66");
	Sleep(1000);
	system("cls");
	Sleep(10);
	print("\n\n\n\n\n\n                                  ",0);
	print("感谢vijos开发的游戏");
	print("\n                               ",0);
	print("按v或V打开vijos,按其他键继续\n");
	char c=getch();
	if(c=='v'||c=='V'){
		system("start https://vijos.org/discuss/游戏");
		print("                                ",0);
		system("pause");
	}
	system("cls");
}
#undef n
int main(){
	enter();
	cout << "要做什么?\n 1.登陆   2.注册   3.退出\n";
	//system("pause");
	int number;
	cin >> number;
	while(number>3){
		cout << "输入错误 :( 重新输入";
		cin >> number;
	}
//	cout << "登陆或注册前先把游戏信息写在data.txt后(1.传奇  2.石头剪刀布   3.猜数     4.贪吃蛇   5.迷宫  0.退出)";
	if(number==3){
		return 0;
	}
	if(number==1){
		dl();
	}
	else{
		zc();
		return 0;
	}
	system("cls");
	cout << UsersName << "欢迎你!";
	while(number!=0){
	cout << "选择哪一款游戏?\n  1.猜数  2.石头剪刀布   3.传奇     4.贪吃蛇   5.迷宫  6.神域 0.退出\n";
	//system("pause");";
	number=getint4();
	while(number>6){
		cout << "输入错误 :( 请重新输入\n";
		number=getint();
	}
	switch(number){
		case 0:break;
		case 2:system("cls");ctjdb();break;
		case 1:system("cls");if(MessageBox(NULL,"该游戏做了更新,使用最新的3.2版本?(测试版)","管理员",MB_YESNO|MB_SYSTEMMODAL)==IDYES){
			MessageBox(NULL,"测试版有误,无法继续!","Error!",MB_OK);
			break;
		}
		else{
			cq3_1();
		}break;
		case 3:system("cls");cs();break;
		case 4:system("cls");system("snake");break;
		case 6:if(MessageBox(NULL,"该游戏也有登录系统,暂不能与本游戏登陆系统兼容,确定继续吗?","管理员",MB_YESNO|MB_SYSTEMMODAL)==IDYES){
			system("cls");
			MessageBox(NULL,"该游戏无法正常工作!","Error!",MB_OK);
			break;
		}system("cls");break;
		default:system("cls");mg();break;
	}
	}
	cout << "下次再来哦 ^_^";
	Sleep(1000);
	return 0;
}

互动环节:求各位大佬给我施舍一点改进建议吧,若有详细方案,甚是感谢。(注意事项:代码随时会改进,有改进建议或问题点请尽快回复,以免被我抢先,谢谢大佬配合)

最后加一句:本代码严禁复制

你可能感兴趣的:(游戏终端服务器分享(1.2版))