#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;i play.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.gold play.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(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 n?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;i 9998) { 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];i sc?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'&&xx i;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 (nx xx)nx--; } if (mmmm==1){ if (ny yy)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; }
互动环节:求各位大佬给我施舍一点改进建议吧,若有详细方案,甚是感谢。(注意事项:代码随时会改进,有改进建议或问题点请尽快回复,以免被我抢先,谢谢大佬配合)
最后加一句:本代码严禁复制