C++小游戏

废话不说,上代码

名字:歹徒逃亡1.5.1正式版

#include
#include
#include
using namespace std;
int g=15000000000000000000,x=30000000000000000000000,f=10000000000000000000,kj=10000000000000000000,chuan=100000000000000000000000000;
int xue=300000000000000000000000000,ff=f;
int bag[41]={999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,};
void slowout(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);}}
int zhandou(int g1,int x1,int f1,int q,int shan,int fang,char boss[20]) {
int k=0;
x=xue;
ff=f;
while(1) {
int cc=g-f1;
if(cc<=0)cc=0;
x1-=cc;
printf("你向%s攻击,%s扣了%d滴血,\
还剩%d滴血\n",boss,boss,cc,x1<0?0:x1);
if(x1<=0) {
k++;
break;}
Sleep(10);
if(rand()%fang)printf("%s十分恼怒,防御+%d\n",boss,q),f1+=q;
else printf("%s气势低沉,防御-%d\n",boss,q),f1-=q;
Sleep(10);
printf("%s向你扑来\n",boss);
Sleep(10);
int ccc=g1-f;
if(ccc<0)ccc=0;
x-=ccc;
printf("%s向你发动攻击,你扣了%d滴血,\
还剩%d滴血\n",boss,ccc,x<0?0:x);
if(x<=0) {
printf("你已死亡!\n");
Sleep(10);
break;}
Sleep(10);
if(rand()%2)printf("你十分恼怒,防御+%d\n",q),f+=q;
else printf("你气势低沉,防御-%d\n",q),f-=q;
Sleep(10);}
f=ff;
return k;}
int main()
{char name[20];
int vip,a,b,c,d,e,u,v,w,x,y,z,wuqi=0,key=0,sys=0,yhk=0,kc=0,slb=0;
int exp=0,money=300,lv=1,lv1=1;
for(int i=1;i<=40;i++)
bag[i]==0;
int xie=0,chuan=0,xz[21];
for(int i=0;i<=20;i++)
xz[i]=0;
printf("歹");
Sleep(500);
printf("徒");
Sleep(500);
printf("逃");
Sleep(500);
printf("亡\n");
Sleep(500);
printf("1.5.1正式版\n");
Sleep(500);
system("cls");
system("color 70");
Sleep(10);
slowout("在2999年,S城……\n");
Sleep(10);
slowout("这是一座充满未知的神秘城市…………\n");
Sleep(10);
slowout("某一天……\n");
Sleep(10);
Sleep(10);
slowout("警察A:这都快半年了,S城一直平安无事,你说我们俩在这里天天转悠,够无聊的。\n");
Sleep(10);
slowout("警察B:哎,咋们也是为了混口饭吃,不容易啊!\n");
Sleep(10);
slowout("警察A:算了,巡逻巡逻吧。\n");
Sleep(10);
slowout("突然,惊天动地一声巨响,两名警察应声倒地\n") ;
Sleep(10);
slowout("烟雾中,你出现了~\n\n\n");
Sleep(10);
slowout("请输入你的名字:");
cin>>name;
system("cls");
printf("确认名字:你的名字是%s\n",name);
Sleep(10);
slowout("下面正式开始游戏~//大力支持作者//\n\n\n\n\n");
Sleep(10);
printf("你,%s是一名S城的普通歹徒,然而,你想干出一番大事业。\n",name);
Sleep(10);
Sleep(10);
Sleep(10);
goto a1;
a1:{while(exp>500)
{
exp-=500;
lv+=1;
}
if(lv-lv1==1)
{
slowout("你升级了!\n");
xue+=100;
g+=50;
f+=20;
lv1++;
}
if(lv>lv1&&lv-lv1!=1)
{
int eeeee=lv-lv1;
slowout("你连升了");
cout<>a;}
if(a==1)
{
int dajie;
srand((unsigned)time(NULL));
dajie=rand()%10;
if(dajie>=0&&dajie<=4)
{
printf("大街上走来了一个路人\n");
Sleep(10);
printf("是否打他? 1.是 2.否\n");
cin>>b;
if(b==1)
{
if(zhandou(100,350,0,10,1,2,"路人"))
{
int luren;
luren=rand()%10;
printf("胜利!\n");
Sleep(10);
printf("获得50金币,30经验\n");
money+=50;exp+=30;
if(luren>=0&&luren<=4)
{
printf("恭喜获得:小瓶攻击药水*1\n");
bag[1]++;
}
else {
printf("没有获得物品\n");
}}}
goto a1;
}
if(dajie>4&&dajie<=6)
{
printf("大街上过来了一名警察\n");
Sleep(10);
printf("是否攻击?1.是 2.否\n");
cin>>b;
if(b==1)
{
if(zhandou(200,700,50,5,1,2,"警察"))
{
int police;
police=rand()%10;
printf("胜利!\n");
Sleep(10);
printf("获得100金币,80经验\n");
money+=100;exp+=80;
if(police>=0&&police<=3)
{
printf("恭喜获得:中瓶攻击药水*1\n");
bag[2]++;
}
if(police>3&&police<=6)
{
printf("恭喜获得:长刀*1\n");
bag[7]++;
}
else printf("没有获得任何物品\n");
goto a1;
}}
goto a1;
}
if(dajie>6&&dajie<=8)
{
printf("安全。\n");
goto a1;
}
if(dajie==9)
{
printf("大街上来了一辆装甲车\n");
Sleep(10);
printf("是否攻击?1.是 2.否\n");
cin>>b;
if(b==1)
{
if(zhandou(850,3000,660,0,1,2,"装甲车"))
{
printf("你胜利了!\n");
Sleep(10);
printf("获得600金币,500经验!!!\n");
money+=600;exp+=500;
Sleep(10);
printf("你有资格驾驶这辆装甲车!\n");
bag[13]++;
}}
goto a1;
}}
if(a==2)
{
slowout("黑店老板:你要做甚么? 1.购买 2.抢劫\n");
cin>>c;
if(c==1)
{
int shangdian[16];
for(int aaaaa=1;aaaaa<=15;aaaaa++)
shangdian[aaaaa]=0;
slowout("黑店老板:你要买啥类?\n");
Sleep(10);
printf("1.长刀 200¥\n");
printf("2.青龙偃月刀 666¥\n");
printf("3.开启实验室的钥匙 500¥\n");
printf("4.银行卡(别想了,里面没钱) 300¥\n");
printf("5.手枪 800¥\n");
printf("6.机关枪 1000¥\n");
printf("7.98K 1999¥\n");
printf("8.熔炼炉 650¥\n");
printf("9.树皮/木头/白纸/碳(随机) 100¥\n");
printf("10.黑市入场券 100¥\n");
printf("11.挖矿镐 150¥\n");
printf("12.黑市终身贵宾卡 9999¥\n");
printf("13.等离子大炮 2000¥\n");
printf("14. 高级装甲车升级道具 999999¥\n");
printf("15.退出\n");
cin>>b;
shangdian[b]==1;
slowout("黑店老板:你要买几个?\n");
cin>>kj;
int sdm=0,j;
for(int i=1;i<=14;i++)
{
if(b==1){sdm==200;
j=1;}
if(b==2){sdm==666;
j=8;}
if(b==3){sdm==500;
j=0;}
if(b==4){sdm==300;
j=-1;}
if(b==5){sdm==800;
j=9;}
if(b==6){sdm==1000;
j=10;}
if(b==7){sdm==1999;
j=11;}
if(b==8){sdm==650;
j=20;}
if(b==9){sdm==100;
j=-2;}
if(b==10){sdm==100;
j=21;}
if(b==11){sdm==150;
j=31;}
if(b==12){sdm==9999;
j=22;};
if(b==13){sdm==2000;
j=12;}
if(b==14){sdm==999999;
j=-3;}
if(shangdian[i]==1)
if(money4&&dian<=7)
{
slowout("获得木头\n");
bag[17]++;
}
if(dian>7&&dian<=11)
{
slowout("获得白纸\n");
bag[18]++;
}
if(dian>11)
{
slowout("获得碳\n");
bag[19]++;
}}}}}}
if(j==-3)
if(money>b;
if(b==1)
{
if(bag[31]==0)
slowout("你没有挖矿镐!\n");
if(bag[31]>0){
printf("挖矿开始!\n");
Sleep(3000);
int wk;
wk=rand()%13;
if(wk==0||wk==1||wk==2||wk==3)
{
slowout("挖中青铜矿*1\n");
bag[26]++;
}
if(wk==4||wk==5)
{
slowout("挖中铁矿*1\n");
bag[27]++;
}
if(wk==6)
{
slowout("挖中金矿*1\n");
bag[28]++;
}
if(wk==7)
{
slowout("运气超赞,挖中钻石矿*1\n");
bag[29]++;
}
if(wk==8)
{
slowout("运气爆棚,挖中翡翠矿*1,但是由于太过坚硬,废了一把稿子\n");
bag[30]++;
bag[31]--;
}
if(wk>8)
{
slowout("运气太差,啥也没挖到,稿子还断了\n");
bag[31]--;
}
}
}
}
if(kc==0)
{
slowout("你进入矿场\n");
slowout("你看见许多劳工在不停地干活,而监工们却十分清闲,如果有劳工停了一下,他们还用鞭子抽打\n");
slowout("你虽是歹徒,却也看不下去了\n");
printf("%s:",name);
slowout("你们这样太过分了,民主平等年代怎么还会有这种事!\n");
slowout("监工:哪里来的乡巴佬,多管闲事!\n");
printf("%s:",name);
slowout("(怒)老子是歹徒,不是乡巴佬!\n");
if(zhandou(350,800,100,10,1,2,"矿场监工"))
slowout("另一名监工冲了过来\n");
else{
slowout("没实力就不要装B!\n");
Sleep(10);
goto a1;
}
if(zhandou(400,900,200,10,1,2,"矿场监工"))
slowout("监工找来了总监工\n");
else{
slowout("没实力就不要装B!\n");
Sleep(10);
goto a1;
}
slowout("总监工:竟敢扰乱矿场秩序,老子杀了你!\n");
if(zhandou(600,1200,250,5,1,2,"矿场总监工"))
slowout("矿场主出现了!\n");
else{
slowout("没实力就不要装B!\n");
Sleep(10);
goto a1;
}
slowout("矿场主:乡巴佬,你不要自寻死路!\n");
printf("%s:",name);
slowout("(暴怒)再说一遍,老子不是乡巴佬!\n");
if(zhandou(800,2000,200,10,1,2,"矿场主"))
slowout("你干掉了矿场主,所有劳工都自由了!\n");
else{
slowout("没实力就不要装B!\n");
Sleep(10);
goto a1;
}
slowout("所有劳工:感谢您救了我们,以示报答,这个矿场属于您了!\n");
system("cls");
kc=1;
}
Sleep(10);
goto a1;
}
if(a==4)
{
if(sys<1)
slowout("你没有钥匙,进不去!\n");
else{
slowout("你要研制些甚么?\n");
Sleep(10);
printf("1.小瓶/中瓶/大瓶攻击药水 需要:①50¥/100¥/150¥ ②树皮*1/*2/*4\n");
printf("2.小瓶/中瓶/大瓶增血药水 需要:①50¥/100¥/200¥ ②木头*1/*2/*3\n");
printf("3.小瓶/中瓶/大瓶经验药水 需要 ①500¥/1000¥/2000¥ ②碳*3/*6/*9\n");
printf("4.退出\n") ;
printf("更多研制内容敬请期待……\n");
if (bag[20]>0){
cin>>b;
if(b==1)
{
printf("小瓶/中瓶/大瓶?\n");
cin>>c;
slowout("你要研制几瓶?\n");
cin>>kj;
if(c==1)
{
if(money<50*kj&&bag[16]>c;
if(c==1)
{
if(money<=50*kj&&bag[17]>c;
slowout("你要研制几瓶?\n");
cin>>kj;
if(c==1)
{
if(money<=500*kj&&bag[19]>b;
if(b==1)
{
slowout("你走到门口,门卫拦住了你\n");
if(zhandou(200,600,50,5,1,2,"门卫"))
slowout("战斗胜利,继续前进!\n");
else{
slowout("你都还没进门就嗝屁了~告诉过你不要作死!\n");
goto a1;
}
Sleep(10);
slowout("你走了进去,一名拿着青龙偃月刀(从哪儿冒出来的?)的警察拦住了你\n");
if(zhandou(650,800,80,10,1,2,"警察"))
slowout("战斗胜利,继续前进!\n");
else{
slowout("才第二关诶!你这个菜鸟水平也敢进省警察局?\n");
goto a1;
}
Sleep(10);
slowout("你继续前进,一名铁甲警察掏出手枪对准了你!\n");
if(zhandou(600,1000,400,15,1,2,"铁甲警察"))
slowout("战斗胜利,继续前进!\n");
else{
slowout("你也不赖了,可战力还需提高!\n");
goto a1;
}
Sleep(10);
slowout("你就要走到省警察局大楼的门口了,忽然,一名凭空出现的警察掏出了98K!\n");
if(zhandou(1000,1100,150,10,1,2,"警察"))
slowout("战斗胜利,继续前进!\n");
else{
slowout("你完蛋了,变强后再来吧!\n");
goto a1;
}
Sleep(10);
slowout("你走到了大楼门口,省警察局局长出现了!\n");
slowout("局长:大胆歹徒,竟敢闯入省警察局,我要让你有去无回!\n");
slowout("省警察局局长派出了一名保镖!\n");
if(zhandou(900,1800,300,20,1,2,"局长保镖"))
slowout("局长:什么?!你赢了!走着瞧!\n");
else{
slowout("你凉了……\n");
goto a1;
}
Sleep(10);
slowout("局长:没想到你这么难打,只好派出我的精英保镖了!\n");
if(zhandou(1100,2200,450,20,1,2,"精英保镖"))
slowout("局长:你这么厉害?!看来只能请求支援了!\n");
else{
slowout("……你失败了,下次再来吧!\n");
goto a1;
}
Sleep(10);
slowout("局长:呼叫上级,呼叫上级,请求支援!\n");
slowout("一辆超强装甲车开了过来~\n");
slowout("你有一次逃跑的机会,是否逃跑?1.逃跑 2.继续战斗!\n");
cin>>c;
if(c==1)
{
slowout("你溜了,作者表示很鄙视,但还是奖励你800金币,1000经验\n");
money+=800;
exp+=1000;
goto a1;
}
if(zhandou(1200,4000,800,0,1,2,"超强装甲车"))
slowout("局长:纳尼!只能使出终极武器了!\n");
else{
slowout("NO 作 NO die!\n");
goto a1;
}
Sleep(10);
slowout("一辆坦克说来就来了……\n");
slowout("你已无法逃跑,决一死战吧!\n");
if(zhandou(2000,7500,1000,0,1,2,"坦克"))
slowout("局长:这……这怎么可能!\n");
else{
slowout("你被坦克轰死了~\n");
goto a1;
}
Sleep(10);
slowout("局长:我要亲自上,干掉你这个家伙!呃啊啊啊啊啊啊啊\n");
slowout("局长进入了暴怒状态,血量暴增!\n");
if(zhandou(1100,15000,0,100,1,2,"省警察局局长"))
slowout("你把省警察局局长干掉了!你占领了整个省警察局!\n");
else{
slowout("唉,都最后一关了,真是遗憾!\n");
goto a1;
}
Sleep(10);
system("cls");
slowout("你成功占领了省警察局,任务完成,游戏成功!\n\n\n\n\n\n\n\n\n");
slowout("请不要关闭游戏,不然你会后悔的");
Sleep(5000);
system("cls");
slowout("此时……国防部……\n");
slowout("国防部部长:什么?!一个歹徒就把省警察局给占了?警察局的人都干什么吃的?!\n");
slowout("国防部议员:部长,省警察局有很多的弹药和武器,我认为现在可以发射导弹,炸掉警察局,也炸掉那歹徒的老巢\n");
slowout("国防部部长:嗯……好,就这样办!\n");
slowout("导弹发射系统:准备发射导弹,准备发射导弹,目标:S城,省警察局。倒计时开始\n");
Sleep(10);
printf("五 ");
Sleep(10);
printf("四 ");
Sleep(10);
printf("三 ");
Sleep(10);
printf("二 ");
Sleep(10);
printf("一\n");
Sleep(10);
printf("歹徒逃亡第二部,敬请期待!\n");
Sleep(3000);
return 0;
}
Sleep(10);
goto a1;
}
if(a==6)
{
slowout("前台:你要在银行作甚么? 1.存钱 2.抢银行\n");
cin>>b;
if(b==1)
{
if(yhk<1) slowout("你没有银行卡,存不了钱!\n");
else{
slowout("你要存多少钱?\n");
cin>>c;
if(c>money)
slowout("前台:小伙子,你没有那么多钱!\n");
else {
printf("存钱成功!\n");
Sleep(10);
money-=c;
printf("等待中……\n");
Sleep(10000);
int cunqian;
cunqian=rand()%10;
if(cunqian<=1)
{
slowout("运气不错,收获利息1.5倍!\n");
c*=1.5;
money+=c;
}
if(cunqian>1&&cunqian<=4)
{
slowout("运气不错,收获利息1.2倍!\n");
c*=1.2;
money+=c;
}
if(cunqian>4&&cunqian<=7)
{
slowout("很遗憾,运气不好,存的钱只剩一半了\n");
c*=0.5;
money+=c;
}
if(cunqian>7)
slowout("很遗憾,运气不好,存的钱都打水漂了\n");
}
}
}
if(b==2)
{
slowout("前台:喂,110吗?这里有人抢银行啊!你们快来啊!\n");
Sleep(10);
printf("一名防弹持枪警察冲了过来!\n");
Sleep(10);
if(zhandou(900,1500,300,15,1,2,"防弹持枪警察"))
{
int qiang;
qiang=rand()%10;
if(qiang<=4){
slowout("抢银行成功了!获得1000元\n");
money+=1000;
}
if(qiang>4&&qiang<=7){
slowout("抢银行成功了!获得2000元\n");
money+=2000;
}
if(qiang>7&&qiang<=9){
slowout("抢银行成功了!获得3000元\n");
money+=3000;
}
if(qiang>9){
slowout("抢银行成功了!获得5000元\n");
money+=5000;
}
}
else{
slowout("抢银行没成功,你被警察带走了……你被关了一个月,还被罚了500金币\n");
money-=500;
slowout("一个月后……\n");
}
}
Sleep(10);
goto a1;
}
if(a==7)
{
printf("1.查看属性 2.查看武器 3.查看药水 4.查看其它\n");
cin>>b;
if(b==1){
b1:
system("cls");
printf("%s\n",name);
printf("等级:%d\n",lv);
printf("金币:%d\n",money);
printf("经验:%d\n",exp);
printf("血量:%d\n",xue);
printf("攻击:%d\n",g);
printf("防御:%d\n",f);
printf("试炼币:%d\n",slb);
printf("请输入0退出\n");
cin>>c;
if(c==0){
system("cls");
goto a1;
}
else
goto b1;
}
if(b==2)
{
b2://7.长刀 8.青龙偃月刀(乱入) 9.手枪 10.机关枪 11.98K
//12.等离子大炮 13.装甲车 14.高级装甲车 15.坦克
system("cls");
printf("7.长刀*%d\n8.青龙偃月刀*%d\n9.手枪*%d\n10.机关枪*%d\n11.98K*%d\n",bag[7],bag[8],bag[9],bag[10],bag[11]);
printf("12.等离子大炮*%d\n13.装甲车*%d\n14.高级装甲车*%d\n15.坦克*%d\n",bag[12],bag[13],bag[14],bag[15]);
printf("输入1穿上装备,输入2卸下装备,输入0退出\n");
cin>>c;
if(c==0)
{
system("cls");
goto a1;
}
if(c==1)
{
slowout("请输入要穿上的装备。\n");
cin>>d;
if(bag[d]==0)
{
slowout("抱歉,你没有这件装备!\n");
goto b2;
}
if(chuan==1)
{
slowout("你已经穿上装备了!请先卸下原有装备!\n");
goto b2;
}
if(bag[d]>0&&chuan==0)
{
slowout("装备成功!\n");
chuan=1;
system("cls");
wuqi=d;
if(d==7)
{
xue+=150;g+=100;f+=20;xz[7]==1;
}
if(d==8)
{
xue+=200;g+=200;f+=35;xz[8]==1;
}
if(d==9)
{
xue+=200;g+=250;f+=50;xz[9]==1;
}
if(d==10)
{
xue+220;g+=330;f+=60;xz[10]==1;
}
if(d==11)
{
xue+=230;g+=400;f+=60;xz[11]==1;
}
if(d==12)
{
xue+=250;g+=600;f+=80;xz[12]==1;
}
if(d==13)
{
xue+=400;g+=700;f+=300;xz[13]==1;
}
if(d==14)
{
xue+=420;g+=700;f+=380;xz[14]==1;
}
if(d==15)
{
xue+=650;g+=1000;f+=500;xz[15]==1;
}
}
}
if(c==2)
{
slowout("请输入你要卸下的装备\n");
cin>>d;
if(wuqi!=d)
{
slowout("你还没有穿这件装备!\n");
goto b2;
}
if(wuqi==d)
{
slowout("成功卸下装备!\n");
chuan=0;
if(d==7)
{
xue-=150;g-=100;f-=20;xz[7]==0;
}
if(d==8)
{
xue-=200;g-=200;f-=35;xz[8]==0;
}
if(d==9)
{
xue-=200;g-=250;f-=50;xz[9]==0;
}
if(d==10)
{
xue-=220;g-=330;f-=60;xz[10]==0;
}
if(d==11)
{
xue-=230;g-=400;f-=60;xz[11]==0;
}
if(d==12)
{
xue-=250;g-=600;f-=80;xz[12]==0;
}
if(d==13)
{
xue-=400;g-=700;f-=300;xz[13]==0;
}
if(d==14)
{
xue-=420;g-=700;f-=380;xz[14]==0;
}
if(d==15)
{
xue-=650;g-=1000;f-=500;xz[15]==0;
}
goto b2;
}
}
else goto b2;
}
if(b==3)
{
b3:
system("cls");
printf("1.小瓶攻击药水*%d\n2.中瓶*%d\n3.大瓶*%d\n",bag[1],bag[2],bag[3]);
printf("4.小瓶增血药水*%d\n5.中瓶*%d\n6.大瓶*%d\n",bag[4],bag[5],bag[6]);
printf("7.小瓶经验药水*%d\n8.中瓶*%d\n9.大瓶*%d\n",bag[34],bag[35],bag[36]);
printf("输入1喝下药水,输入0退出\n");
cin>>c;
if(c==0)
{
system("cls");
goto a1;
}
if(c==1)
{
slowout("请输入药水序号\n");
cin>>d;
slowout("请输入要使用的数量\n");
cin>>e;
if(d!=7&&d!=8&&d!=9)
if(e>bag[d]||e<=0)
{
slowout("你没有那么多药水!\n");
goto b3;
}
if(d==7||d==8||d==9)
if(e>bag[27+d]||e<=0)
{
slowout("你没有那么多药水!\n");
goto b3;
}
if(d!=7&&d!=8&&d!=9)
if(e<=bag[d]&&e>0)
{
slowout("成功喝下药水\n");
bag[d]-=e;
if(d==1)
g+=10*e;
if(d==2)
g+=20*e;
if(d==3)
g+=35*e;
if(d==4)
xue+=40*e;
if(d==5)
xue+=75*e;
if(d==6)
xue+=100*e;
system("cls");
}
if(d==7||d==8||d==9)
if(e<=bag[d+27]&&e>0){
bag[d+27]-=e;
if(d==7)
exp+=500*e;
if(d==8)
exp+=1000*e;
if(d==9)
exp+=2000*e;
}
goto a1;
}
}
if(b==4)
{
b4:
system("cls");
printf("树皮*%d\n木头*%d\n白纸*%d\n碳*%d\n熔炼炉*%d\n",bag[16],bag[17],bag[18],bag[19],bag[20]);
/*21.黑市入场券 22.黑市终身贵宾卡 23.黑市交易券 24.试炼券 25.抽奖券*/
printf("黑市入场券*%d\n黑市终身贵宾卡*%d\n试炼1.2倍经验符*%d\n试炼券*%d\n抽奖券*%d\n",bag[21],bag[22],bag[23],bag[24],bag[25]);
/*26.青铜矿 27.铁矿 28.金矿 29.钻石矿 30.翡翠矿 31.挖矿镐*/
printf("青铜矿*%d\n铁矿*%d\n金矿*%d\n钻石矿*%d\n翡翠矿*%d\n挖矿镐*%d\n",bag[26],bag[27],bag[28],bag[29],bag[30],bag[31]);
printf("输入0退出\n");
cin>>c;
if(c==0)
{
system("cls");
goto a1;
}
else goto b4;
}
Sleep(10);
goto a1;
}
if(a==8)
{
slowout("请选择模式,1为战斗试炼场,2为商店,3抢劫\n");
cin>>c;
if(c==1)
if(bag[24]==0){
slowout("你没有试炼券\n");
Sleep(10);
goto a1;
}
else{
slowout("即将迎来您的对手:小猪佩奇\n");
{
printf("试炼场上来了一只小猪佩奇\n");
Sleep(10);
printf("是否攻击?1.是 2.否\n");
cin>>b;
if(b==1)
{
if(zhandou(250,3000,560,0,1,2,"小猪佩奇"))
{
printf("你胜利了!\n");
Sleep(10);
printf("获得500试炼币!!!\n");
slb+=500;
Sleep(10);
{
printf("试炼场上来了一辆火箭\n");
Sleep(10);
printf("是否攻击?1.是 2.否\n");
cin>>b;
if(b==1)
{
if(zhandou(1550,1,2000,0,1,2,"火箭"))
{
printf("你胜利了!\n");
Sleep(10);
printf("获得2000试炼币!!!\n");
slb+=2000;
Sleep(10);
}
}
}
goto a1;
}
}
}
Sleep(10);
goto a1;
}
if(c==2)
{

slowout("商店老板:你要买啥类?\n");
Sleep(10);
printf("1. 坦克 23333¥\n");
printf("2. 退出\n");
cin>>b;
if(b==1)
{
slowout("商店老板:你要买几个?\n");
cin>>kj;
if(slb<23333*kj)
slowout("没钱还来买东西\n");
else {
slowout("购买成功\n");
bag[15]+=kj;
slb-=23333*kj;}
}
goto a1;
}
if(c==3)
{
slowout("商店老板:抢劫了,救命啊\n");
slowout("一名未来战士小跑而来,你避无可避,只能迎战\n");
if(zhandou(1780,12200,1220,10,1,2,"未来战士"))
slowout("你干掉了未来战士,获得了2000试炼币!\n");
else{
slowout("没实力就不要装B!\n");
Sleep(10);
goto a1;
}
Sleep(10);
slb+=2000;
goto a1;
}
}
if(a==9)
{
if(bag[22]==0)
{
slowout("黑衣人:您好,黑市是秘密地点,请问您有黑市入场券吗?\n");
printf("1.进入(消耗黑市入场券*1) 2.算了\n");
cin>>b;
if(b==1)
{ if(bag[21]==0)
slowout("入场券不足。\n");
else{
bag[21]--;
int hs;
hs=rand()%3;
if(hs==0)
{
printf("今日上架:\n");
printf("1.500¥ 交换 300经验\n");
printf("2.碳*2 交换 中瓶攻击药水*4\n");
printf("3.小瓶增血药水*3 交换 金币*400\n");
cin>>c;
if(c==1)
{
if(money<500)
slowout("钱不够!\n");
else
{
printf("交易成功,获得300经验\n");
exp+=300;money-=500;
}
}
if(c==2)
{
if(bag[19]<2)
slowout("材料不足。\n");
else{
printf("交易成功,获得中瓶攻击药水*4\n");
bag[19]-=2;
bag[2]+=4;
}
}
if(c==3)
{
if(bag[4]<3)
slowout("药水不足\n");
else{
printf("交易成功,获得金币*400\n");
bag[4]-=3;
money+=400;
}
}
}
if(hs>0)
printf("黑市歇业中……\n");
}
}
}
if(bag[22]>0)
{
slowout("黑衣人:啊,您有终身贵宾卡!赶快迎接!\n");
printf("%s",name);
slowout("大摇大摆地走了进去。\n");
printf("贵宾上架:\n");
printf("1.金币*100 交换 抽奖券*3\n");
printf("2.钻石矿*1 交换 金币*1000\n");
printf("3.小瓶攻击药水*2 交换 大瓶增血药水*5\n");
cin>>c;
if(c==1)
{
if(money<100)
slowout("金币不足!\n");
else{
slowout("交易成功,获得抽奖券*3\n");
money-=100;
bag[25]+=3;
}
}
if(c==2)
{
if(bag[29]==0)
slowout("钻石矿不足。\n");
else{
slowout("交易成功,获得金币*1000\n");
money+=1000;
bag[29]--;
}
}
if(c==3)
{
if(bag[1]<2)
slowout("药水不足。\n");
else{
slowout("交易成功,获得大瓶增血药水*5\n");
bag[1]-=2;
bag[6]+=5;
}
}
}
Sleep(10);
goto a1;
}
if(a==10)
{
if(vip!=1)
{
system("cls");
printf("-----------VIP模式特权:-------------\n");
printf(" 1.超高金币 \n");
printf(" 2.超高生命值 \n");
printf(" 3.超高攻击力 \n");
printf(" 4.抽奖券*9\n");
printf(" 5.直接拥有最强武器——坦克\n");
Sleep(50);
printf("请输入密码:");
cin>>d;
if(d==1)
{
for(int ii=1; ii<=5; ii++) {
system("color 10");
system("color 20");
system("color 30");
system("color 40");
system("color 50");
system("color 60");
system("color 70");
system("color 80");
system("color 90");
system("color a0");
system("color b0");
system("color c0");
system("color d0");
system("color e0");
system("color f0");
}
slowout("恭喜密码正确!成功开启VIP模式!!!\n");
money+=99999;
xue+=9999;
g+=999;
bag[25]+=9;
bag[15]++;
vip=1;
Sleep(10);
system("color 0A");
system("cls");
goto a1;
}
else {
slowout("不晓得密码就别开启了,你只配玩普通模式!\n");
Sleep(10);
system("cls");
goto a1;
}
}
else {
slowout("你已经是VIP了!\n");
goto a1;
}
}
if(a==11)
{
slowout("境泽:欢迎光临真香饭店,我是店长境泽。你要点什么?\n");
printf(" 真香菜单\n");
printf("1.独家秘制招牌真香蛋炒饭 300¥\n");
printf("2.宫保鸡丁 150¥\n");
printf("3.鱼香肉丝 180¥\n");
printf("4.番茄炒蛋 200¥\n");
printf("0.退出\n");
cin>>b;
int fd;
if(b==1)
{
if(money<300)
slowout("你的钱不够!\n");
else{
printf("%s:真香!\n",name);
money-=300;
Sleep(10);
slowout("获得150经验\n");
exp+=150;
fd=rand()%5;
if(fd==0)
{
slowout("你元气爆棚,加血500滴,加攻击力200点,加防御力80点!\n");
g+=200;xue+=500;f+=80;
}
if(fd==1)
{
slowout("你感觉全身充满了力量,加攻击力200点,防御力50点!\n");
g+=200;f+=50;
}
if(fd==2)
{
slowout("你奇迹般地获得了2张试炼券!\n");
bag[24]+=2;
}
}
}
if(b==2)
{
if(money<150)
slowout("你的钱不够!\n");
else{
printf("%s:味道不错!\n",name);
money-=150;
Sleep(10);
slowout("加经验80点\n");
exp+=80;
fd=rand()%3;
if(fd==0)
{
slowout("你运气很好,获得黑市终身贵宾卡一张!\n");
bag[22]++;
}
if(fd==1)
{
slowout("你奇迹般地获得了3张抽奖券!\n");
bag[25]+=3;
}
}
}
if(b==3)
{
if(money<180)
slowout("你的钱不够!\n");
else{
printf("%s:太好吃了!",name);
money-=180;
Sleep(10);
slowout("获得经验80点\n");
exp+=80;
fd=rand()%2;
if(fd==0)
{
slowout("你从鱼香肉丝中获得了神奇的力量,血量加300滴!\n");
xue+=300;
}
}
}
if(b==4)
{
if(money<200)
slowout("你的钱不够!\n");
else{
printf("%s:DELICIOUS!\n",name);
money-=200;
Sleep(10);
slowout("获得经验100点\n");
exp+=100;
fd=rand()%2;
if(fd==0)
{
slowout("你瞬间爆发出神力,加攻击力200点,防御力30点!\n");
g+=200;f+=30;
}
}
}
Sleep(10);
goto a1;
}
if(a==12)
{
slowout("欢迎来到抽奖机!拥有抽奖券即有机会获得以下惊喜大礼!\n");
printf("1.试炼券*3 2.500金币 3.试炼券*2 4.黑市入场券*3 5.2000经验\n");
printf("6.1000金币 7.大瓶增血药水*10 8.钻石矿*5(终极大奖)\n");
printf("1.开始抽奖(消耗抽奖券*1)2.退出\n");
cin>>b;
if(b==1)
{
int aca;
cin>>aca;

if(bag[25]<=aca)
slowout("抽奖券不足!\n");
else{
printf("正在抽奖中……\n");
bag[25]-=aca;
Sleep(5000);
for(int i=0;i<=aca;i++){int cj;
cj=rand()%11;
if(cj==1)
{
slowout("获得试炼券*3\n");
bag[24]+=3;
}
if(cj==2)
{
slowout("获得500金币\n");
money+=500;
}
if(cj==3)
{
slowout("获得试炼券*2\n");
bag[24]+=2;
}
if(cj==4)
{
slowout("获得黑市入场券*3\n");
bag[22]+=3;
}
if(cj==5)
{
slowout("获得2000经验\n");
exp+=2000;
}
if(cj==6)
{
slowout("获得1000金币\n");
money+=1000;
}
if(cj==7||cj==8)
{
slowout("获得大瓶增血药水*10\n");
bag[6]+=10;
}
if(cj==9)
{
slowout("抽中大奖:钻石矿*5\n");
bag[29]+=5;
}
if(cj>9)
slowout("很遗憾,没有抽中!\n");
}
}
Sleep(10);
goto a1;
}

}
if(a>12||a<1){slowout("输出错误\n");
goto a1; }
return 0;
}

名字:歹徒逃亡 3——刺杀行动   1.3.2正式版

#include
#include
#include
#define MAX 100
using namespace std;
int xue_yuan=1000,xmax_yuan=1000,g_yuan=75;
double f_yuan=0.05;
int xue=1000,xmax=1000,g=75,money=1000,xep=0,lv=1;
int ren=0,a,b,c,d,hui_he=0,face=0,n=0,zi_ge=0,yin_hang=0,h=0,jiu_dian=0,da_gong=0,Time=0;
int zhuang[3]={0,0,0};
double f=f_yuan;
char name[20];
int bag[21];
int k[3]={0,0,0};
int BUILD[50]={0};
struct Read
{
char str[100000];
char miwen[50][20];
}READ;
void slowout(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(20);
}
Sleep(500);
}
int _3zhandou(int x1,int g1,double f1,char boss[20],int mf,int shu_l) //g1敌人攻击 x1敌人血量 f1敌人防御
{
int k1=0,tan_ke=0,i=0,chan_rao=0,j=0,tt=0,shen=0,x=0,xxue=0,xuex=0,shu_i=0;
int cc=0,ccc=0;
int sj,jn;
int fx1=x1,fg1=g1;
for(shu_i=1;shu_i<=shu_l;++shu_i)
{
while(1)
{
if(f1>0.8)
f1=0.8;
if(f>0.8)
f=0.8;
if(chan_rao!=0)
printf("你因魔法而本回合内无法攻击!\n");
else
{
cc=g*(1.0-f1);
x1-=cc;
if(x1<=0)
x1=0;
printf("你向第%d个%s发起攻击,%s减血%d滴,还剩%d滴血!\n",shu_i,boss,boss,cc,x1);
Sleep(500);
}
if(x1<=0)
{
k1++;
break;
}
ccc=g1*(1.0-f);
xue-=ceil(ccc);
if(xue<0)
xue=0;
printf("第%d个%s对你发起攻击,你减血%d滴,还剩%d滴血!\n",shu_i,boss,ccc,xue);
if(xue<=0)
{
slowout("你凉了……\n");
xue_yuan=1000;
xmax_yuan=1000;
g_yuan=75;
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
xep=0;
lv=1;
f=f_yuan;
if(zhuang[0]==1)
{
g=g_yuan;
g+=200;
}
else if(zhuang[0]==2)
{
f=f_yuan;
f+=0.1;
}
if(zhuang[1]==9)
{
g=g_yuan;
g+=50;
}
else if(zhuang[1]==10)
{
g=g_yuan;
g+=75;
}
else if(zhuang[1]==11)
{
g=g_yuan;
g+=100;
}
else if(zhuang[1]==12)
{
g=g_yuan;
g+=150;
}
else if(zhuang[1]==13)
{
g=g_yuan;
g+=250;
}
if(zhuang[2]==14)
{
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.4;
g+=1000;
xue+=2000;
xmax+=2000;
}
else if(zhuang[2]==15)
{
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.5;
g+=1500;
xue+=2750;
xmax+=2750;
}
else if(zhuang[2]==16)
{
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.6;
g+=2250;
xue+3000;
xmax+=3000;
}
else if(zhuang[2]==17)
{
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.65;
g+=2500;
xue+=4000;
xmax+=4000;
}
return 0;
}
Sleep(500);
jn=rand()%3;
if(jn==0)
{
if(mf==1)
{
printf("%s使出了技能“回血”!增加血量100点!\n",boss,mf);
x1+=100;
}
else if(mf==2)
{
printf("%s使出了技能“狂暴”!攻击力增强100!\n",boss);
g1+=100;
}
else if(mf==3)
{
printf("%s使出了技能“武装”!攻击力增强100,防御力增强5!\n",boss);
g1+=100; f1+=0.05;
}
else if(mf==4)
{
printf("%s使出了技能“护盾”!增加防御力10!\n",boss);
f1+=0.1;
}
else if(mf==5)
{
printf("%s使出了技能“全副武装”!增加血量200点,攻击力150,防御力8!\n",boss);
x1+=200; g1+=150; f1+=0.08;
}
else if(mf==6)
{
sj=rand()%2;
if(sj==0)
{
printf("%s使出了技能“炮击”!你被击中了!减血500滴!\n",boss);
xue-=500;
}
else
{
printf("%s使出了技能“炮火连天”!你受到灼烧伤害,每回合减血200滴!\n",boss);
tan_ke=1;
}
}
else if(mf==7)
{
printf("%s使出了技能“天谴”!你减血200滴!\n",boss);
xue-=200;
}
else if(mf==8)
{
printf("%s使出了技能“缠绕”!你在一回合内无法攻击!\n",boss);
chan_rao=1;
i=2;
}
else if(mf==9)
{
printf("%s使出了技能“激光扫射”!你减血500滴!\n",boss);
xue-=500;
}
else if(mf==10)
{
printf("%s使出了技能“钻心刻骨”!你将在5回合内连续受到疼痛攻击!\n",boss);
tt=1;j=5;
}
else if(mf==11)
{
sj=rand()%3;
if(sj==0)
{
printf("%s使出了技能“阿瓦达索命”!你减血1000滴!\n",boss);
xue-=1000;
}
if(sj==1)
{
printf("%s使出了技能“超级狂暴”!加血500滴,攻击力增强250,防御力增强10!\n",boss);
x1+=500; g1+=250; f1+=0.1;
}
if(sj==2)
{
printf("%s使出了技能“昏昏欲睡”!你在一回合内无法攻击!\n",boss);
chan_rao=1;
i=2;
}
}
else if(mf==12)
{
printf("%s使出了技能“飞斩”!你减血400滴!\n",boss);
xue-=400;
}
else if(mf==13)
{
printf("%s使出了技能“激光轰击”!你减血500滴!\n",boss);
xue-=500;
}
else if(mf==14)
{
sj=rand()%3;
if(sj==0)
{
printf("国防部部长用魔杖给议员加血500滴!\n");
g1+=500;
}
else if(sj==1)
{
printf("国防部部长用魔杖给议员加了一层护盾!议员防御力提升20!\n");
f1+=0.2;
}
else if(sj==2)
{
printf("国防部部长用魔杖把议员激怒了,议员攻击力提升500!\n");
g1+=500;
}
}
else if(mf==15)
{
sj=rand()%2;
if(sj==0)
{
printf("国防部部长用魔杖把你捆住了,两回合内无法攻击!\n");
chan_rao=1;
i=3;
}
else
{
printf("国防部部长用魔杖使机器人保镖进入狂暴状态!机器人保镖增血500滴,攻击力增强200,防御力增强10!\n");
x1+=500;g1+=200;f1+=0.1;
}
}
else if(mf==16)
{
sj=rand()%3;
if(sj==0)
{
printf("%s使出了技能“神锋无影”!",boss);
shen=rand()%8;
shen+=3;
printf("你被连中%d刀,减血%d滴!\n",shen,shen*150);
xue-=shen*150;
}
if(sj==1)
{
printf("%s使出了技能“星石陨落”!你减血1500滴!\n",boss);
xue-=1500;
}
if(sj==2)
{
printf("%s使出了技能“强力吸血”!该效果持续3回合!\n",boss);
xxue=4; x=1; xuex=1;
}
}
else if(mf==17)
{
sj=rand()%2;
if(sj==0)
{
printf("%s使出了技能“机枪扫射”!",boss);
shen=rand()%8;
shen+=3;
printf("你被连中%d枪,减血%d滴!\n",shen,shen*150);
xue-=shen*150;
}
else
{
printf("%s使出了技能“激光扫射”!你减血500滴!\n",boss);
xue-=500;
}
}
else if(mf==18)
{
sj=rand()%2;
if(sj==0)
{
printf("%s使出了技能“机枪扫射II”!",boss);
shen=rand()%18;
shen+=13;
printf("你被连中%d枪,减血%d滴!\n",shen,shen*175);
xue-=shen*150;
}
else if(sj==1)
{
printf("%s使出了技能“火焰喷射”!你受到灼烧伤害,每回合减血400滴!\n",boss);
tan_ke=2;
}
}
else if(mf==19)
{
sj=rand()%3;
if(sj==0)
{
printf("%s使出了技能“爆破”!你受到爆炸伤害,减血1000滴!\n",boss);
xue-=1000;
}
if(sj==1)
{
printf("%s使出了技能“凋零”!你受到凋零伤害,每回合减血800滴!\n",boss);
tan_ke=4;
}
if(sj==2)
{
printf("%s使出了技能“汲取”!每回合被吸血800滴,并每回合增加15防御!该效果持续3回合!\n",boss);
xxue=4; x=2; xuex=1;
}
}
Sleep(500);
}
//炮火连天 火焰喷射 凋零
if(tan_ke>0)
{
if(tan_ke==1)
printf("灼烧伤害中,减血200滴。\n");
if(tan_ke==2)
printf("灼烧伤害中,减血400滴。\n");
if(tan_ke==4)
printf("凋零伤害中,减血800滴。\n");
xue-=ceil(ceil(200*tan_ke)*f);
}
//缠绕 昏昏欲睡 国防部部长用魔杖把你捆住
i--;
if(i<=0)
chan_rao=0;
//钻心刻骨
j--;
if(j==0)
tt=0;
if(tt==1)
{
printf("疼痛伤害中,减血100滴。\n");
xue-=ceil(ceil(100)*f);
}
//强力吸血
if(x==1)
{
xxue--;
if(xxue==0)
{
xuex=0;
x=0;
}
if(xuex==1)
{
printf("国防部部长从你那里吸血400滴。\n");
xue-=400;
x1+=400;
}
}
//汲取
if(x==2)
{
xxue--;
if(xxue==0)
{
xuex=0;
x=0;
}
if(xuex==1)
{
printf("国防部部长从你那里吸血800滴,并增加15防御。\n");
xue-=800;
x1+=800;
f1+=0.15;
}
}
}
x1=fx1,g1=fg1;
}
if(xue<=ceil(0.25*xmax))
xue=ceil(0.25*xmax);
return k1;
}
void ji()
{
int _ji=0;
for(int sheng=1;xep>=500;++sheng)
{
xep-=500;
_ji++;
}
printf("你升了%d级,增加%d攻击,%d血量!\n",_ji,5*_ji,5*_ji);
lv+=_ji;
g+=5*_ji;
xue+=5*_ji;
xmax+=5*_ji;
xue_yuan+=5*_ji;
xmax_yuan+=5*_ji;
Sleep(1000);
}


int high,width;//地图高度与宽度
int bird_x,bird_y;//小鸟的位置
int through,wall;//通道的x坐标和墙的起始坐标y
int Map[MAX][MAX];//记录页面的显示
/*0代表空白,1代表小鸟的位置,2代表墙
3代表上下围墙,4代表左右围墙*/
bool book[MAX][MAX];//代表改点有围墙
int score;//记录得分
bool result = 0;//游戏结果1代表失败,0代表胜利,不过永远赢不了~~
void startup()
{
score = 0;
high = 20;
width = 50;
bird_x = high/2;
bird_y = width/4;
through = high/2;
wall = width/4*3;
result = 0;
}
int REST()
{
if(50-score>5)
return 50-score;
else
return 5;
}
void startMap()
{
int i,j;
for(i=1;i<=high-1;i++)
{
Map[i][1] = 4;
for(j=2;j<=width-1;j++)
Map[i][j] = 0;
Map[i][width] = 4;
}
//下方围墙的初始化
i = high;
for(j=1;j<=width;j++)
Map[i][j] = 3;
//小鸟位置的初始化
Map[bird_x][bird_y] = 1;

//墙的初始化
for(i=1;i<=high-1;i++)
{
Map[i][wall] = 2;
book[i][wall] = 1;
}
//通道的初始化
for(i=through-4;i<=through+4;i++)//通道的大小可以自定义.
{
Map[i][wall] = 0;
book[i][wall] = 0;
}
}
void HideCursor()//隐藏光标
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void gotoxy(int x,int y)//清理一部分屏幕
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(handle,pos);
}
void UPdatewithOutinput()//与输入无关的更新
{
bird_x++;
wall--;
if(book[bird_x][bird_y] == 1 || bird_x > high || bird_x<=0)//当小鸟死亡时
{
result = 1;
}
if(wall == bird_y-1)//当小鸟走过墙时得一分
score++;
if(wall < 1)
{
srand(time(NULL));
through = rand() % high;
while(through <= 3 || through >= high-2)
{
through = rand() % high;
}
}
if(wall < 1)
{
wall = width/4*3;
}

memset(book,0,sizeof(book));
Sleep(REST());
}
void UPdatewithinput()
{
char input;
if((GetAsyncKeyState(' ')& 0x8000) && bird_x>2)//判断是否有键盘输入
bird_x -= 2;//小鸟向上蹦两格
}
void show()
{
gotoxy(0,0);
int i,j;
for(i=1;i<=high;i++)
{
for(j=1;j<=width;j++)
{
switch(Map[i][j])
{
case 0:
printf(" ");
break;
case 1:
printf("@");
break;
case 2:
printf("*");
break;
case 3:
printf("~");
break;
case 4:
printf("|");
break;
}
}
printf("\n");
}
printf("你的分数是:%d\n\n",score);
printf("操作说明:空格键向上移动\n");
}
int dagong()
{
printf("每一分是200元!\n");
Sleep(1000);
system("cls");
Sleep(1000);
startup();
while(1)
{
HideCursor();
startMap();
show();
UPdatewithOutinput();
if(result == 1)
break;
UPdatewithinput();
}
system("cls");
printf("你输了");
system("pause");
system("pause");
system("pause");
system("pause");
system("pause");
return score;
}
void begin()
{
slowout("需要指引吗?(1需要 / 2不了)\n");
cin>>a;
if(a==2)
goto a1;
slowout("歹徒逃亡 3——刺杀行动\n");
slowout("1.3.2正式版\n");
slowout("绝对原创 不喜勿喷!!!\n");
slowout("游戏中有部分bug,望谅解!\n");
system("cls");
slowout("话说你占领了M城的国防部,贼嗨皮!~!~!~!\n");
slowout("只可是VT市的总统之都已经炸开了锅……\n");
slowout("“那小子太优秀了,提一点好的意见吧,总统。”\n");
slowout("“(他/她)不好惹,呵呵呵将军,带上这个火速赶往M城,嘿嘿嘿~~~”\n");
slowout("“总统,您放心,我会让《歹徒逃亡 3——刺杀行动》这个系列代码不超过100行的(他也不知道自己会打脸)。”\n");
Sleep(1000);
system("cls");
slowout("M城…………\n");
slowout("你正在准备接手国防部部长名号,呵呵呵将军来了……\n");
slowout("“尊敬的新任国防部部长呀,请看!”\n");
slowout("只见他拿出核铳(“核铳”是向阿西莫夫的科幻小说致敬!)瞄准了你,并向你开了一枪…………\n");
slowout("没有防御罩的你,自然被轰到十万八千里开外…………\n");
slowout("的一个小水池中,不知水是否也有魔法(特别致谢cyka blyat的《歹徒逃亡 2——魔法之城》),你活了下来。\n");
slowout("自然的,我们不知道你在《歹徒逃亡 2——魔法之城》中的姓名、攻击等数据。\n");
slowout("所以说:“你脑子被炸坏了,物品也毁了。”\n");
slowout("请再起一个名字:\n");
cin>>name;
printf("%s,游戏开始!\n",name);
Sleep(1500);
system("cls");
slowout("你四处瞅了瞅,发现这里是A城。VT首都的临城!\n");
slowout("你也发现墙上贴满了你的通缉令。便赶紧向城郊跑去,定居了下来。\n");
slowout("“咦?你这是什么纸?”你好奇的看了看后,便收进背包里了(开始游戏后再看)。\n");
system("pause");
system("cls");
return;
a1:
slowout("请起一个名字:\n");
cin>>name;
printf("%s,游戏开始!\n",name);
Sleep(1500);
}
void Turn_off()
{
int fy=ceil(f_yuan*100),ff=ceil(f*100);
FILE *fp = fopen("C:\\歹徒逃亡\\play.txt","w+");
fprintf(fp, "%s ",name);
fprintf(fp, "%d %d %d %d ",xue_yuan,xmax_yuan,g_yuan,fy);
fprintf(fp, "%d %d %d %d %d %d %d ",xue,xmax,g,money,xep,lv,ff);
fprintf(fp, "%d ",hui_he);
fprintf(fp, "%d ",face);
fprintf(fp, "%d ",zi_ge);
fprintf(fp, "%d ",yin_hang);
fprintf(fp, "%d ",h);
fprintf(fp, "%d ",jiu_dian);
fprintf(fp, "%d ",da_gong);
fprintf(fp, "%d ",Time);
fprintf(fp, "%d %d %d ",k[0],k[1],k[2]);
fprintf(fp, "%d %d %d ",zhuang[0],zhuang[1],zhuang[2]);
for(int i=1;i<=17;++i)
fprintf(fp, "%d ",bag[i]);
fclose(fp);
}
int Have()
{
FILE *fp=fopen("C:\\歹徒逃亡\\play.txt","r+");
char ch;
ch=fgetc(fp);
fclose(fp);
if(ch!=EOF)
return 1;
else
return 0;
}
void Build()
{
int i=0,k1=0;
char ch;
ch=READ.str[k1];
while(ch!='\0')
{
if(ch!=' ')
{
name[k1]=ch;
k1++;
}
else
break;
ch=READ.str[k1];
}
i=1;
ch=READ.str[k1];
while(ch!='\0')
{
while(ch!=' ')
{
BUILD[i]=BUILD[i]*10+ch-48;
k1++;
ch=READ.str[k1];
}
i++;
ch=READ.str[++k1]; //等于 k++; ch=READ.str[k];
}
/* for(int j=0;j<=42;++j)
printf("%d ",BUILD[j]);
printf("\n");
system("pause");*/ //测试
i=2;//方便复制代码
xue_yuan=BUILD[i++];
xmax_yuan=BUILD[i++];
g_yuan=BUILD[i++];
f_yuan=BUILD[i++];
xue=BUILD[i++];
xmax=BUILD[i++];
g=BUILD[i++];
money=BUILD[i++];
xep=BUILD[i++];
lv=BUILD[i++];
f=BUILD[i++];
hui_he=BUILD[i++];
face=BUILD[i++];
zi_ge=BUILD[i++];
yin_hang=BUILD[i++];
h=BUILD[i++];
jiu_dian=BUILD[i++];
da_gong=BUILD[i++];
Time=BUILD[i++]; //i=20;
for(i=21;i<=23;++i)
k[i-21]=BUILD[i];
for(i=24;i<=26;++i)
zhuang[i-24]=BUILD[i];
for(i=27;i<=43;++i)
bag[i-26]=BUILD[i]; //bag从1开始
f_yuan=f_yuan/100.0;
f=f/100.0;
}
void Turn_on()
{
slowout("是否使用存档?(1是 / 2否)\n");
cin>>a;
if(a==1)
{
FILE *fp=fopen("C:\\歹徒逃亡\\play.txt","r+");
char ch;
ch=fgetc(fp);
for(int i=0;ch!=EOF;++i)
{
READ.str[i]=ch;
ch=fgetc(fp);
}
fclose(fp);
Build();
}
else
begin();
}
int main()
{
system("cls");
system("color 70");
mkdir("C:\\歹徒逃亡");//XP系统可能会报错,可在运行一次后注释
for(int i=1;i<=20;i++)
bag[i]=0;
int gxue,gg;
double gf;
srand((unsigned)time(NULL));
if(Have())
Turn_on();
else
begin();
a1:
Turn_off();
if(yin_hang!=0)
hui_he++;
if(jiu_dian!=0)
money+=500;
if(Time!=0)
Time--;
system("cls");
slowout("你要到哪里去?\n");
printf("1.大街 2.练兵场 3.市政府 4.整容店 5.银行 6.赌场 7.工厂 8.医院 9.酒店 10.状态 11.新手指引 0.退出\n");
cin>>a;
if(face==0 && a!=4 && a!=11 && a!=10 && a!=12 && a!=0)
{
printf("你看见了三名警卫机器人!\n");
Sleep(500);
slowout("警卫机器人:“这不是M城来的歹徒吗?抓住他!”\n");
Sleep(500);
gxue=1500;gg=300;gf=0.3;
if(_3zhandou(gxue,gg,gf,"警卫机器人",17,3))
{
slowout("你胜利了!\n");
slowout("获得 1000金币,600经验\n");
money+=1000;xep+=600;
if(xep>=500)
ji();
}
else
goto a1;
}
if(a==1)
{
ren=rand()%10;
if(ren==0||ren==1||ren==2||ren==3)
{
printf("大街上来了一名路人\n");
gxue=400;gg=150;gf=0.02;
cout<>b;
Sleep(1000);
if(b==1)
{
n=rand()%2+1;
if(_3zhandou(gxue,gg,gf,"路人",n,1))
{
slowout("你胜利了!\n");
slowout("获得 100金币,50经验\n");
money+=100;xep+=50;
if(xep>=500)
ji();
}
}
goto a1;
}
else if(ren==4||ren==5)
{
printf("你在大街上看见了一家店铺。\n");
cout<>b;
if(b==1)
{
slowout("老板:“快来警察呀!有人抢劫啦!”\n");
gxue=500;gg=250;gf=0.05;
if(_3zhandou(gxue,gg,gf,"警察",3,2))
{
slowout("你胜利了!\n");
int qian=rand()%5+1;
printf("抢到 %d金币\n",200*qian);
money+=200*qian;
}
}
else if(b==2)
{
slowout("老板:“你要买什么?”\n\n");
printf("你的金币:%d\n",money);
int fen=0,dong_xi=0,dian=rand()%3;
if(dian==0)
{
while(1)
{
printf("你的金币:%d\n",money);
printf(" 1.手雷 250 金币 / 个\n");
printf(" 2.盾牌 300 金币 / 个\n");
printf(" 0.退出\n\n\n");
slowout("您买什么?\n");
cin>>dong_xi;
if(dong_xi==0)
break;
else if(dong_xi==1)
{
if(money>=250)
{
slowout("购买成功!\n");
money-=250;
bag[1]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
else if(dong_xi==2)
{
if(money>=300)
{
slowout("购买成功!\n");
money-=300;
bag[2]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
}
}
else if(dian==1)
{
while(1)
{
printf("你的金币:%d\n",money);
printf(" 1.小瓶攻击药水 500 金币 / 瓶\n");
printf(" 2.中瓶攻击药水 750 金币 / 瓶\n");
printf(" 3.大瓶攻击药水 1200 金币 / 瓶\n");
printf(" 4.小瓶增血药水 500 金币 / 瓶\n");
printf(" 5.中瓶增血药水 750 金币 / 瓶\n");
printf(" 6.大瓶增血药水 1200 金币 / 瓶\n");
printf(" 0.退出\n\n\n");
slowout("您买什么?\n");
cin>>dong_xi;
if(dong_xi==0)
break;
slowout("您买多少?\n");
cin>>fen;
if(dong_xi==1)
{
if(money>=500*fen)
{
slowout("购买成功!\n");
money-=500*fen;
bag[3]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
if(dong_xi==2)
{
if(money>=750*fen)
{
slowout("购买成功!\n");
money-=750*fen;
bag[4]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
if(dong_xi==3)
{
if(money>=1200*fen)
{
slowout("购买成功!\n");
money-=1200*fen;
bag[5]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
if(dong_xi==4)
{
if(money>=500*fen)
{
slowout("购买成功!\n");
money-=500*fen;
bag[6]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
if(dong_xi==5)
{
if(money>=750*fen)
{
slowout("购买成功!\n");
money-=750*fen;
bag[7]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
if(dong_xi==6)
{
if(money>=1200*fen)
{
slowout("购买成功!\n");
money-=1200*fen;
bag[8]+=fen;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
}
}
else if(dian==2)
{
while(1)
{
printf("你的金币:%d\n",money);
printf(" 1.钻石剑 1500 金币 / 把\n");
printf(" 2.武士刀 1800 金币 / 把\n");
printf(" 3.青龙偃月刀 2400 金币 / 把\n");
printf(" 4.回旋镖 2000 金币 / 把\n");
printf(" 5.火铳 3000 金币 / 把\n");
printf(" 0.退出\n\n\n");
slowout("您买什么?\n");
cin>>dong_xi;
if(dong_xi==0)
break;
else if(dong_xi==1)
{
if(money>=1500)
{
slowout("购买成功!\n");
money-=1500;
bag[9]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
else if(dong_xi==2)
{
if(money>=1800)
{
slowout("购买成功!\n");
money-=1800;
bag[10]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
else if(dong_xi==3)
{
if(money>=2400)
{
slowout("购买成功!\n");
money-=2400;
bag[11]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
else if(dong_xi==4)
{
if(money>=2000)
{
slowout("购买成功!\n");
money-=2000;
bag[12]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
else if(dong_xi==5)
{
if(money>=3000)
{
slowout("购买成功!\n");
money-=3000;
bag[13]++;
slowout("老板:“还买点啥?”\n");
}
else
{
slowout("老板:“没钱还买!走吧!”\n");
break;
}
}
}
}
}
}
else if(ren==5||ren==6)
{
printf("大街上来了一名警卫机器人!\n");
Sleep(1000);
if(face==0)
slowout("警卫机器人:“这不是M城来的歹徒吗?抓住他!”\n");
gxue=1500;gg=300;gf=0.3;
if(_3zhandou(gxue,gg,gf,"警卫机器人",17,1))
{
slowout("你胜利了!\n");
slowout("获得 1000金币,600经验\n");
money+=1000;xep+=600;
if(xep>=500)
ji();
}
goto a1;
}
else if(ren==7)
{
printf("大街上来了一辆装甲车!\n");
gxue=2000;gg=600;gf=0.4;
cout<>b;
Sleep(1000);
if(b==1)
{
if(_3zhandou(gxue,gg,gf,"装甲车",5,1))
{
slowout("你胜利了!\n");
slowout("获得 1200金币,800经验\n");
money+=1200;xep+=800;
int car=rand()%25;
if(car==0)
{
slowout("你也幸运地获取了这辆装甲车!\n");
bag[14]++;
}
if(xep>=500)
ji();
}
}
goto a1;
}
else if(ren==8)
{
printf("大街上来了一辆坦克!\n");
gxue=2750;gg=700;gf=0.5;
cout<>b;
Sleep(1000);
if(b==1)
{
if(_3zhandou(gxue,gg,gf,"坦克",6,1))
{
slowout("你胜利了!\n");
slowout("获得 1500金币,1000经验\n");
money+=1500;xep+=1000;
int car=rand()%25;
if(car==0)
{
slowout("你也幸运地获取了这辆坦克!\n");
bag[15]++;
}
if(xep>=500)
ji();
}
}
goto a1;
}
else if(ren==9)
{
printf("大街上来了一辆直升机!\n");
gxue=3250;gg=800;gf=0.6;
cout<>b;
Sleep(1000);
if(b==1)
{
if(_3zhandou(gxue,gg,gf,"直升机",17,1))
{
slowout("你胜利了!\n");
slowout("获得 1800金币,1200经验\n");
money+=1800;xep+=1200;
int car=rand()%25;
if(car==0)
{
slowout("你也幸运地获取了这架直升机!\n");
bag[16]++;
}
if(xep>=500)
ji();
}
}
goto a1;
}
Sleep(1000);
goto a1;
}
else if(a==2)
{
if(k[0]!=0)
{
slowout("你已经占领此地了。\n");
goto a1;
}
slowout("你真的要进去?不要作死!进入/离开?(1/2)\n");
cin>>b;
if(b==1)
{
slowout("在大门口你就看见两名武装警察!\n是否闯入/离开?(1/2)\n");
gxue=800;gg=350;gf=0.1;
cin>>c;
if(c==1)
{
if(_3zhandou(gxue,gg,gf,"武装警察",4,2))
{
slowout("你胜利了!\n");
slowout("回复200点血量!\n");
xue+=200;
}
slowout("你刚进入操场,就被两辆装甲车拦住了。\n");
slowout("士兵:“你是谁呀?别进入我们练兵场!吃我一炮!”\n");
gxue=2000;gg=600;gf=0.4;
if(_3zhandou(gxue,gg,gf,"装甲车",5,2))
{
slowout("你胜利了!\n");
slowout("回复300点血量!\n");
xue+=300;
}
else
goto a1;
slowout("接着你看到了两辆直升机朝你飞来。你没有办法逃跑,只能与他们决战!\n");
gxue=3250;gg=850;gf=0.6;
if(_3zhandou(gxue,gg,gf,"直升机",17,2))
{
slowout("你胜利了!\n");
slowout("回复450点血量!\n");
xue+=450;
}
else
goto a1;
slowout("刚刚打败了他们,整沾沾自喜。忽然你发现练兵场场长来了。\n");
slowout("练兵场场长:“不错呀小子,都能打到这里来了。不过我不会再让你闯下去!”\n");
slowout("练兵场场长说着就拿出魔杖,将两辆直升机进化成武装直升机了!\n");
gxue=4500;gg=1000;gf=0.65;
if(_3zhandou(gxue,gg,gf,"武装直升机",18,2))
{
slowout("你胜利了!\n");
slowout("回复800点血量!\n");
xue+=800;
}
else
goto a1;
slowout("练兵场场长:“什么!?这都不怕!?好吧,只能我亲自来与你决战了!”\n");
gxue=6000;gg=1100;gf=0.6;
if(_3zhandou(gxue,gg,gf,"练兵场场长",16,1))
{
slowout("你胜利了!获得了一架武装直升机!\n");
bag[17]++;
k[0]=1;
zi_ge++;
slowout("获得8000金币,2000经验\n");
money+=5000;xep+=2000;
if(xep>=500)
ji();
}
}
}
Sleep(1000);
goto a1;
}
else if(a==3)
{
if(zi_ge==3)
{
slowout("你真的要进去/离开?(1/2)\n");
cin>>b;
if(b==1)
{
slowout("你谨慎地推开大门,却发现并没有什么异样,跟普通的大楼没什么区别。\n");
slowout("“怎么会这样呢?市政府的防守不应该很严密吗?”你正疑惑着。\n");
slowout("突然你看见了三名武装警察!\n");
gxue=800;gg=350;gf=0.1;
if(_3zhandou(gxue,gg,gf,"武装警察",4,3))
{
slowout("你胜利了!\n");
slowout("回复200点血量!\n");
xue+=200;
}
slowout("你来到市长办公室... ... ... ... ... ... ... ... ... ...\n");
slowout("突然,市长出来了!\n");
slowout("市长:“你以为我们认不出你?错,你的DNA早就被我们提取了!”\n");
slowout("士兵们,上!!\n");
slowout("你看见了三辆装甲车!\n");
gxue=2000;gg=600;gf=0.4;
if(_3zhandou(gxue,gg,gf,"装甲车",5,3))
{
slowout("你胜利了!\n");
slowout("回复1000点血量!\n");
xue+=1000;
}
else
goto a1;
slowout("市长:“我还有坦克!”\n");
gxue=2750;gg=700;gf=0.5;
if(_3zhandou(gxue,gg,gf,"坦克",6,2))
{
slowout("你胜利了!\n");
slowout("回复1500点血量!\n");
xue+=1500;
}
slowout("市长:“这... ... ... 直升机,来吧!”\n");
slowout("接着你看到了两辆直升机朝你飞来。你没有办法逃跑,只能与他们决战!\n");
gxue=3500;gg=825;gf=0.6;
if(_3zhandou(gxue,gg,gf,"直升机",17,2))
{
slowout("你胜利了!\n");
slowout("回复2000点血量!\n");
xue+=2000;
}
else
goto a1;
slowout("你正高兴,市长却将直升机进化成武装直升机!!!\n");
gxue=4500;gg=1000;gf=0.65;
if(_3zhandou(gxue,gg,gf,"武装直升机",18,2))
{
slowout("你胜利了!\n");
slowout("回复2500点血量!\n");
xue+=2500;
}
else
goto a1;
slowout("市长:“我…………我要与你决战!”\n");
gxue=30000;gg=600;gf=0.5;
if(_3zhandou(gxue,gg,gf,"市长",19,1))
{
slowout("你胜利了!\n");
slowout("已占领市政府!任务完成!\n");
slowout("自然地,请查看后续剧情…………\n");
Sleep(5000);
system("cls");
slowout("3000年2月5日\n");
slowout("VT市\n");
slowout("总统:“呵呵呵将军,你的任务失败了,打算怎么挽回?”\n");
slowout("呵呵呵将军:“已派遣全球力量,势必将其拿下!”\n");
Sleep(2000);
slowout("《歹徒逃亡》4 ——决战首都 敬请期待!\n");
Turn_off();
return 0;

}
else
goto a1;
}
goto a1;
}
else
slowout("你没有资格进入市政局!!!\n");
Sleep(1000);
goto a1;
}
else if(a==4)
{
slowout("整容师:“你要整容吗?花费1000金币。”整容/离开?(1/2)\n");
cin>>b;
if(b==1)
{
if(money>=1000)
{
money-=1000;
slowout("整容中…………\n");
slowout("整容中…………\n");
slowout("整容中…………\n");
slowout("整容成功!\n");
face=1;
}
else
slowout("整容师:“钱不够还来!? 快走吧!”\n");
}
Sleep(1000);
goto a1;
}
else if(a==5)
{
slowout("你要干什么?办业务/抢劫(1/2)\n");
cin>>b;
if(b==1)
{
slowout("服务员:“您需要什么服务吗?”。存钱/取钱(1/2)\n");
cin>>c;
if(c==1)
{
if(yin_hang!=0)
{
slowout("服务员:“业务正在办理,目前无法存钱。”\n");
goto a1;
}
slowout("服务员:“您要存多少?”\n\n");
printf(" 金额 利润率 回合\n");
printf("1. 1000元 2%% 2回合\n");
printf("2. 2500元 4%% 4回合\n");
printf("3. 5000元 6%% 6回合\n");
printf("4. 10000元 8%% 8回合\n");
printf("5. 25000元 10%% 10回合\n");
printf("6. 退出\n");
cin>>d;
if(d==1)
{
if(money>=1000)
{
money-=1000;
yin_hang=1040;
hui_he=0;
h=2;
}
else
slowout("钱不够!\n");
}
else if(d==2)
{
if(money>=2500)
{
money-=2500;
yin_hang=2900;
hui_he=0;
h=4;
}
else
slowout("钱不够!\n");
}
else if(d==3)
{
if(money>=5000)
{
money-=5000;
yin_hang=6800;
hui_he=0;
h=6;
}
else
slowout("钱不够!\n");
}
else if(d==4)
{
if(money>=10000)
{
money-=10000;
yin_hang=16400;
hui_he=0;
h=8;
}
else
slowout("钱不够!\n");
}
else if(d==5)
{
if(money>=25000)
{
money-=25000;
yin_hang=50000;
hui_he=0;
h=10;
}
else
slowout("钱不够!\n");
}
}
else if(c==2)
{
if(hui_he>b;
if(b==1)
{
int m=0,AIdu=0,PCdu=0;
slowout("你要付多少赌金?\n");
cin>>m;
if(moneyAIdu)
{
slowout("恭喜您赢了,赌金双倍!\n");
money+=m;
}
if(PCdu==AIdu)
{
slowout("平局。\n");
}
}
else if(b==2)
{
int m=0;
slowout("你要付多少赌金?\n");
cin>>m;
if(moneyAI)
{
slowout("恭喜您赢了,获得对方赌金!\n");
money+=AI;
}
else
{
slowout("对不起您输了,赌金扣光!\n");
money-=m;
}
}
Sleep(1000);
goto a1;
}
else if(a==7)
{
slowout("您是要打工还是搞破坏?(1/2)\n");
cin>>b;
if(b==1)
{
if(Time==0)
{
da_gong=0;
da_gong=dagong();
printf("你获得%d元!",200*da_gong);
money+=200*da_gong;
Time=3;
}
else
slowout("工厂关门!");
}
else if(b==2)
{
if(k[1]!=0)
{
slowout("你已经占领此地了。\n");
goto a1;
}
slowout("厂长:“有人要搞破坏呀!”\n");
slowout("三名警察向你走来!\n");
gxue=500;gg=250;gf=0.05;
if(_3zhandou(gxue,gg,gf,"警察",3,3))
{
slowout("你胜利了!\n");
slowout("加血200滴!\n");
xue+=200;
}
else
goto a1;
slowout("厂长:“新鲜出炉的装甲车,快上!”\n");
gxue=2000;gg=600;gf=0.4;
if(_3zhandou(gxue,gg,gf,"装甲车",5,2))
{
slowout("你胜利了!\n");
slowout("加血500滴!\n");
xue+=500;
}
slowout("厂长:“蛤?魔法师,快给我上!”\n");
gxue=1500;gg=450;gf=0.3;
if(_3zhandou(gxue,gg,gf,"魔法师",11,1))
{
slowout("你胜利了!\n");
slowout("加血750滴!\n");
xue+=750;
}
else
goto a1;
slowout("厂长:“我,我跟你拼了!”\n");
gxue=3000;gg=600;gf=0.45;
if(_3zhandou(gxue,gg,gf,"厂长",11,1))
{
slowout("你胜利了!\n");
slowout("获得3000金币,1000经验……………………\n");
slowout("…………和一辆坦克!\n");
money+=3000;
xep+=1000;
bag[15]++;
zi_ge++;
k[1]=1;
if(xep>=500)
ji();
}
else
goto a1;
}
Sleep(1000);
goto a1;
}
else if(a==8)
{
slowout("欢迎光临医院,你要疗伤吗?(1/2)\n");
cin>>b;
if(b==1)
{
if(xue==xmax)
{
slowout("你很健康,无需治疗。\n");
}
else
{
printf("需要%d金币。\n",xmax-xue);
if(money=500)
ji();
}
Sleep(1000);
goto a1;
}
else if(a==10)
{
b1:
system("cls");
printf("------------------- 歹徒 %s 的状态 -------------------\n",name);
printf(" \n");
printf(" 姓名 %s \n",name);
printf(" 金币 %d \n",money);
printf(" 血量 %d \n",xue);
printf(" 血量上限 %d \n",xmax);
printf(" 攻击 %d \n",g);
printf(" 等级 %d \n",lv);
printf(" 经验 %d 还有%d经验升级 \n",xep,500-xep);
printf(" 防御 %.0lf%% \n",100.0*f);
printf(" \n");
printf(" \n");
printf(" 副手 ");
if(zhuang[0]==0)
printf("无\n");
else if(zhuang[0]==1)
printf("手雷\n");
else if(zhuang[0]==2)
printf("盾牌\n");
printf(" 武器 ");
if(zhuang[1]==0)
printf("无\n");
else if(zhuang[1]==9)
printf("钻石剑\n");
else if(zhuang[1]==10)
printf("武士刀\n");
else if(zhuang[1]==11)
printf("青龙偃月刀\n");
else if(zhuang[1]==12)
printf("回旋镖\n");
else if(zhuang[1]==13)
printf("火铳\n");
printf(" 载具 ");
if(zhuang[2]==0)
printf("无\n");
else if(zhuang[2]==14)
printf("装甲车\n");
else if(zhuang[2]==15)
printf("坦克\n");
else if(zhuang[2]==16)
printf("直升机\n");
else if(zhuang[2]==17)
printf("武装直升机\n");
printf(" \n");
printf("------------------------------------------------------\n\n\n");
printf("-----------------------你的物品-----------------------\n");
printf(" \n");
printf("1. 手雷 %d \n",bag[1]);
printf("2. 盾牌 %d \n",bag[2]);
printf("3. 小瓶攻击药水 %d \n",bag[3]);
printf("4. 中瓶攻击药水 %d \n",bag[4]);
printf("5. 大瓶攻击药水 %d \n",bag[5]);
printf("6. 小瓶增血药水 %d \n",bag[6]);
printf("7. 中瓶增血药水 %d \n",bag[7]);
printf("8. 大瓶增血药水 %d \n",bag[8]);
printf("9. 钻石剑 %d \n",bag[9]);
printf("10. 武士刀 %d \n",bag[10]);
printf("11. 青龙偃月刀 %d \n",bag[11]);
printf("12. 回旋镖 %d \n",bag[12]);
printf("13. 火铳 %d \n",bag[13]);
printf("14. 装甲车 %d \n",bag[14]);
printf("15. 坦克 %d \n",bag[15]);
printf("16. 直升机 %d \n",bag[16]);
printf("17. 武装直升机 %d \n",bag[17]);
printf("0. 退出\n\n\n");
printf("你要使用什么?\n");
cin>>b;
if(bag[b]==0&&b!=0)
{
slowout("你没有这玩意!");
goto b1;
}
if(b==1)
{
printf("该副手增加200攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[0]!=0)
bag[zhuang[0]]++;
zhuang[0]=b;
bag[b]--;
g=g_yuan;
g+=200;
}
}
else if(b==2)
{
printf("该副手增加10防御,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[0]!=0)
bag[zhuang[0]]++;
zhuang[0]=b;
bag[b]--;
f=f_yuan;
f+=0.1;
}
}
else if(b==3)
{
printf("该药水增加10攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[3]--;
g_yuan+=10;
g+=10;
}
}
}
else if(b==4)
{
printf("该药水增加25攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[4]--;
g_yuan+=25;
g+=25;
}
}
}
else if(b==5)
{
printf("该药水增加40攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[5]--;
g_yuan+=40;
g+=40;
}
}
}
else if(b==6)
{
printf("该药水增加50血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[6]--;
xue_yuan+=50;
xmax_yuan+=50;
xue+=50;
xmax+=50;
}

}
}
else if(b==7)
{
printf("该药水增加200血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[7]--;
xue_yuan+=200;
xmax_yuan+=200;
xue+=200;
xmax+=200;
}
}
}
else if(b==8)
{
printf("该药水增加500血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
printf("用多少?");
cin>>d;
if(d>bag[b])
{
printf("不够!\n");
Sleep(1000);
goto a1;
}
for(int i=1;i<=d;++i)
{
bag[8]--;
xue_yuan+=500;
xmax_yuan+=500;
xue+=500;
xmax+=500;
}

}
}
else if(b==9)
{
printf("该武器增加50攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[1]!=0)
bag[zhuang[1]]++;
zhuang[1]=b;
bag[b]--;
g=g_yuan;
g+=50;
}
}
else if(b==10)
{
printf("该武器增加75攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[1]!=0)
bag[zhuang[1]]++;
zhuang[1]=b;
bag[b]--;
g=g_yuan;
g+=75;
}
}
else if(b==11)
{
printf("该武器增加100攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[1]!=0)
bag[zhuang[1]]++;
zhuang[1]=b;
bag[b]--;
g=g_yuan;
g+=100;
}
}
else if(b==12)
{
printf("该武器增加150攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[1]!=0)
bag[zhuang[1]]++;
zhuang[1]=b;
bag[b]--;
g=g_yuan;
g+=150;
}
}
else if(b==13)
{
printf("该武器增加250攻击,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[1]!=0)
bag[zhuang[1]]++;
zhuang[1]=b;
bag[b]--;
g=g_yuan;
g+=250;
}
}
else if(b==14)
{
printf("该载具增加400防御,1000攻击,2000血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[2]!=0)
bag[zhuang[2]]++;
zhuang[2]=b;
bag[b]--;
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.4;
g+=1000;
xue+=2000;
xmax+=2000;
if(zhuang[0]==1)
g+=200;
else if(zhuang[0]==2)
f+=0.1;
}
}
else if(b==15)
{
printf("该载具增加500防御,1500攻击,2750血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[2]!=0)
bag[zhuang[2]]++;
zhuang[2]=b;
bag[b]--;
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.5;
g+=1500;
xue+=2750;
xmax+=2750;
if(zhuang[0]==1)
g+=200;
else if(zhuang[0]==2)
f+=0.1;
}
}
else if(b==16)
{
printf("该载具增加600防御,2250攻击,3000血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[2]!=0)
bag[zhuang[2]]++;
zhuang[2]=b;
bag[b]--;
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.6;
g+=2250;
xue+3000;
xmax+=3000;
if(zhuang[0]==1)
g+=200;
else if(zhuang[0]==2)
f+=0.1;
}
}
else if(b==17)
{
printf("该载具增加650防御,2500攻击,4000血量,是否使用?(1/2)\n");
cin>>c;
if(c==1)
{
if(zhuang[2]!=0)
bag[zhuang[2]]++;
zhuang[2]=b;
bag[b]--;
xue=xue_yuan;
xmax=xmax_yuan;
g=g_yuan;
f=f_yuan;
f+=0.65;
g+=2500;
xue+=4000;
xmax+=4000;
if(zhuang[0]==1)
g+=200;
else if(zhuang[0]==2)
f+=0.1;
}
}
Sleep(1000);
goto a1;
}
else if(a==11)
{
slowout("A城的军事力量远超过国防部,不要在大街上欺负每一个行人。\n");
slowout("还有,你的开挂系统也没了。(作者前两部都开了外挂打,觉得很没意思!)\n");
slowout("重点是A城很发达,每个重地都有警卫机器人防守,况且他们都有魔法!\n");
slowout("还有,你可能会面临一个人对抗多个敌人的情况!\n");
slowout("请注意,规范输入!\n");
slowout("你最好在他们联网抓住你之前完成刺杀行动,拿到机器人控制权。\n\n\n");
slowout(" 祝你好运!\n\n");
slowout(" 这是作者为你编写的新手指引\n");
system("pause");
goto a1;
}
else if(a==0)
{
Turn_off();
return 0;
}
else
goto a1;
}

名字:坦克大战

#include
#include
#include
#include
#include
using namespace std;

HANDLE Mutex=CreateMutex(NULL,FALSE,NULL);//互斥对象

int GameOver=0;
int level=0;
int map[23][23];
//坦克种类,Normal为玩家坦克
#define Normal 0
#define Red 1
#define Blue 2
#define Green 3
//方向的宏定义
#define Up 0
#define Down 1
#define Left 2
#define Right 3
//地图标记的宏定义
#define Empty 0
#define Player 1
#define PlayerBullet 2
#define EnemyBullet 3
#define Enemy 4

int Kill;
int KillRed;
int KillGreen;
int EnemyExist;

void SetPos(int i,int j)//设定光标位置
{
	COORD pos={i,j};
	HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(Out, pos);
}

void HideCurSor(void)//隐藏光标
{
	CONSOLE_CURSOR_INFO info={1,0};
	HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(Out,&info);
}

int sharp[4][12]=
{
	{0,1,1,0,1,1,1,2,2,0,2,2},
	{0,0,0,2,1,0,1,1,1,2,2,1},
	{0,1,0,2,1,0,1,1,2,1,2,2},
	{0,0,0,1,1,1,1,2,2,0,2,1},
};//此数组用来保存坦克各个方向的形状信息

DWORD WINAPI Bulletfly(LPVOID lpParameter);//子弹函数申明
void Updata();//更新界面信息函数申明

class Tank//坦克类
{
private:
	int Direction;//方向
	int hotpoint[2];//活动点
	int Speed;//速度
	int FirePower;//火力
public:
	Tank(int dir,int hot1,int hot2,int typ,int spe,int firepow)//构造函数
	{
		Direction=dir;
		hotpoint[0]=hot1;
		hotpoint[1]=hot2;
		Type=typ;
		Speed=spe;
		FirePower=firepow;
	}
	int Type;//坦克的种类(详见宏定义)
	int ID;//坦克在MAP中的标记(详见宏定义)
	int FireEnable;//是否可以开火
	int Life;//生命值
	void Running();//运行函数
	int Judge(int x,int y,int ID);//判断是否可以绘制坦克
	void DrawTank();//重绘坦克
	void Redraw();//擦除坦克
	int GetSpeed()//获取速度
	{
		return Speed;
	}
	int GetFire()//获取火力
	{
		return FirePower;
	}
	int GetDirection()//获取方向
	{
		return Direction;
	}
	int GetHotX()//获取活动点坐标
	{
		return hotpoint[0];
	}
	int GetHotY()
	{
		return hotpoint[1];
	}
	void IncreaseFire()//火力+
	{
		FirePower++;
	}
	void IncreaseSpeed()//速度+
	{
		Speed++;
	}
	void ChangeDirection(int newD)//改变方向
	{
		Direction=newD;
	}
	void ChangePos(int x,int y)//改变活动点
	{
		hotpoint[0]=x;
		hotpoint[1]=y;
	}
};

Tank player(Right,0,0,Normal,1,1);//玩家
Tank enemy(Left,20,0,Red,1,1);//敌人

void Tank::DrawTank()//绘制坦克
{
	 int i;
	 int nx,ny;
	 if(Type==Red)
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED);
		else if(Type==Blue)
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_BLUE);
		else if(Type==Green)
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_GREEN);
		else if(Type==Normal)
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	 for(i=0;i<6;i++)
	{ 
		nx=hotpoint[0]+sharp[Direction][i*2];
		ny=hotpoint[1]+sharp[Direction][i*2+1];
		SetPos((ny+1)*2,nx+1);//利用sharp数组相对于点x,y绘制形状
		map[nx][ny]=ID;
		cout<<"■";
	}
}

void Tank::Redraw()//擦除坦克,原理同上
{
	 int i;
	 int nx,ny;
	 for(i=0;i<6;i++)
	{ 
		nx=hotpoint[0]+sharp[Direction][i*2];
		ny=hotpoint[1]+sharp[Direction][i*2+1];
		map[nx][ny]=Empty;
		SetPos((ny+1)*2,nx+1);
		cout<<"  ";
	}
}

int Tank::Judge(int x,int y,int dir)//判断当前是否可以绘制坦克
{
	int i;
	int nx,ny;
	for(i=0;i<6;i++)
	{ 
		nx=x+sharp[dir][i*2];
		ny=y+sharp[dir][i*2+1];
		if(nx<0||nx>=23||ny<0||ny>=23||map[nx][ny]!=Empty)//不能绘制,返回1
			return 1;
	}
	return 0;
}


void Tank::Running()//坦克运行函数
{
	int newD;
	//坦克的运行
	while(1)
	{
		if(Life==0)
		{
			EnemyExist=0;//敌人不存在
			return;
		}
		if(GameOver==1)
			return;
		if(FireEnable==1&&GameOver==0)//如果可以开火
		{
			WaitForSingleObject(Mutex,INFINITE);//线程拥有互斥对象
			FireEnable=0;//设为不可开火
			HANDLE bullet=CreateThread(NULL,0,Bulletfly,&ID,0,NULL);//创建子弹线程
			CloseHandle(bullet);
			ReleaseMutex(Mutex);//释放互斥对象
			Sleep(100);
		}
		WaitForSingleObject(Mutex,INFINITE);//线程拥有互斥对象
		srand((int)time(0));
	    newD=rand()%4;
		
		if(newD==Up)//随机出新的方向并重新绘制坦克
		{
			Redraw();
			if(Judge(hotpoint[0]-1,hotpoint[1],newD)==0)
			{
				hotpoint[0]--;
				Direction=newD;
			}
			else
			{
				if(Judge(hotpoint[0],hotpoint[1],newD)==0)
					Direction=newD;
            }
		}
		else if(newD==Down)
		{
			Redraw();
			if(Judge(hotpoint[0]+1,hotpoint[1],newD)==0)
			{
				hotpoint[0]++;
				Direction=newD;
			}
			else
			{
				if(Judge(hotpoint[0],hotpoint[1],newD)==0)
					Direction=newD;
            }
		}
		else if(newD==Left)
		{
			Redraw();
			if(Judge(hotpoint[0],hotpoint[1]-1,newD)==0)
			{
				hotpoint[1]--;
				Direction=newD;
			}
			else
			{
				if(Judge(hotpoint[0],hotpoint[1],newD)==0)
					Direction=newD;
            }
		}
		else if(newD==Right)
		{
			Redraw();
			if(Judge(hotpoint[0],hotpoint[1]+1,newD)==0)
			{
				hotpoint[1]++;
				Direction=newD;
			}
			else
			{
				if(Judge(hotpoint[0],hotpoint[1],newD)==0)
					Direction=newD;
            }
		}
		if(GameOver==0&&Life!=0)
		   DrawTank();
		ReleaseMutex(Mutex);//释放互斥对象
		Sleep(500-80*Speed);
	}
}

/*********************子弹线程函数*******************/
DWORD WINAPI Bulletfly(LPVOID lpParameter)
{
	int *ID=(int *)lpParameter;//ID用来获取发射子弹坦克的ID
	int Pos[2];//子弹活动点
	int direction;
	int Speed;
	int type;
	int hit=0;//击中标记
	int oldx,oldy;//旧活动点
	int flag=0;//子弹是否有移动的标记
	if(*ID==Player)//如果是玩家坦克
	{
		type=PlayerBullet;
		direction=player.GetDirection();
		Speed=player.GetFire();
		Pos[0]=player.GetHotX();
		Pos[1]=player.GetHotY();
	}
    else if(*ID==Enemy)//如果是敌人坦克
	{
		type=EnemyBullet;
		direction=enemy.GetDirection();
		Speed=enemy.GetFire();
		Pos[0]=enemy.GetHotX();
		Pos[1]=enemy.GetHotY();
	}
	if(direction==Up)//根据坦克的位置和方向确定子弹的初始坐标
	{
		Pos[0]--;
		Pos[1]++;
	}
	else if(direction==Down)
	{
		Pos[0]+=3;
		Pos[1]++;
	}
	else if(direction==Left)
	{
		Pos[0]++;
		Pos[1]--;
	}
	else if(direction==Right)
	{
		Pos[0]++;
		Pos[1]+=3;
	}
	//子弹的运行
	while(1)
	{
		WaitForSingleObject(Mutex,INFINITE);//这个不再注释了。。。。。
		if(flag==1&&hit!=1)//擦除原位置
		{
    	   map[oldx][oldy]=Empty;
		   SetPos((oldy+1)*2,oldx+1);
		   cout<<"  ";
		}
		if(GameOver==1)
			return 0;
		if(hit==1||Pos[0]<0||Pos[0]>22||Pos[1]<0||Pos[1]>22)//如果击中
		{
			ReleaseMutex(Mutex);
			Sleep(500);
			if(type==PlayerBullet)
				player.FireEnable=1;
			else if(type=EnemyBullet)
				enemy.FireEnable=1;
			break;
		}
		switch(map[Pos[0]][Pos[1]])//子弹经过的MAP的标记
		{
			
		   case Empty://如果是空位置就绘制子弹
			    map[Pos[0]][Pos[1]]=type;
				SetPos((Pos[1]+1)*2,Pos[0]+1);
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
				cout<<"■";
			    break;
		   case Player://如果是玩家位置
			    Updata();
			    hit=1;
			    break;
		   case Enemy://如果是敌人位置
			    if(type!=PlayerBullet)
					hit=1;
				else
				{
					hit=1;
					Kill++;
					if(Kill%20==0&&player.Life<5)//击杀数++
						player.Life++;
					if(enemy.Type==Red)//如果击杀红坦克
					{
						KillRed++;
						if(KillRed%10==0&&player.GetFire()<5)
							player.IncreaseFire();
					}
					if(enemy.Type==Green)///如果击杀绿坦克
					{
						KillGreen++;
						if(KillGreen%10==0&&player.GetSpeed()<5)
							player.IncreaseSpeed();
					}
					enemy.Redraw();//擦除敌人
					enemy.Life=0;//敌人死亡
				}
				Updata();
			   break;
		}
		oldx=Pos[0];
		oldy=Pos[1];
		if(direction==Up)//子弹移动
		   Pos[0]--;
	     else if(direction==Down)
	    	Pos[0]++;
	     else if(direction==Left)
	    	Pos[1]--;
	    else if(direction==Right)
	    	Pos[1]++;
		 ReleaseMutex(Mutex);
		 flag=1;
		 Sleep(60-10*Speed);
    }
	return 0;
}


/*************************敌人线程函数***************************/
DWORD WINAPI TankRuning(LPVOID lpParameter)
{
	Sleep(400);
	int Pos;
	int Start[2];//敌人起始地址
	int typ;
	int fire;
	int spe;
	while(1)
	{
		if(GameOver==1)
			return 0;
	    srand((int)time(0));//随机出敌人起始地址
	    Pos=rand()%4;
	    if(Pos==0)
	    {
		     Start[0]=2;
		     Start[0]=2;
	    }
	    else if(Pos==1)
	    {
	     	Start[0]=2;
	    	Start[1]=18;
	     }
	     else if(Pos==2)
	    {
		    Start[0]=18;
		    Start[1]=2;
	     }
	     else if(Pos==3)
	    {
		   Start[0]=18;
		   Start[1]=18;
	    }
		 if(player.Judge(Start[0],Start[1],Down)==0)
			 break;
	}
	WaitForSingleObject(Mutex,INFINITE);
	srand((int)time(0));
	typ=rand()%3+1;//随机出敌人的种类
	if(typ==Blue)
	{
		spe=1+level;
		fire=1+level;
	}
	else if(typ==Red)
	{
		spe=1+level;
		fire=3+level;
	}
	else if(typ==Green)
	{
		spe=3+level;
		fire=1+level;
	}
    enemy=Tank(Down,Start[0],Start[1],typ,spe,fire);//重新生成敌人坦克
	enemy.ID=Enemy;
	enemy.Life=1;
	enemy.FireEnable=1;
	ReleaseMutex(Mutex);
	enemy.Running();
	return 0;
}


void Init()//初始化函数
{
	Kill=0;
	KillRed=0;
	KillGreen=0;
	player=Tank(Left,0,0,Normal,1,1);
	enemy=Tank(Left,0,0,Red,1,1);
	player.Life=2;
	player.FireEnable=1;
	enemy.Life=0;
	enemy.FireEnable=1;
	player.ID=Player;
	enemy.ID=Enemy;
	EnemyExist=0;
}

void Updata()//更新界面信息
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	int i;
	SetPos(53,0);
	cout<<"生命值:";
	SetPos(53,1);
	for(i=3;i<17;i+=3)
	{
		if(i='1')
			break;
	}
	level=x-'0'-1;
}

int main()
{
	Init();
	HideCurSor();
	Welcome();
	DrawMap();
	HANDLE temp;
	int newD;
	player.DrawTank();
	while(GameOver==0)
	{
		if(GetAsyncKeyState(VK_UP))//按键上
		{
			WaitForSingleObject(Mutex,INFINITE);
			newD=Up;
			player.Redraw();
			if(player.Judge(player.GetHotX()-1,player.GetHotY(),newD)==0)//移动玩家坦克,原理和敌人函数一样
			{
				player.ChangePos(player.GetHotX()-1,player.GetHotY());
				player.ChangeDirection(newD);
			}
			else
			{
				if(player.Judge(player.GetHotX(),player.GetHotY(),newD)==0)
					player.ChangeDirection(newD);
            }
			if(GameOver==0)
			   player.DrawTank();
			ReleaseMutex(Mutex);
			Sleep(200-player.GetSpeed()*20);//按键延迟,决定玩家坦克的速度
		}
		else if(GetAsyncKeyState(VK_DOWN))//按键下,同上
		{
			WaitForSingleObject(Mutex,INFINITE);
			newD=Down;
			player.Redraw();
			if(player.Judge(player.GetHotX()+1,player.GetHotY(),newD)==0)
			{
				player.ChangePos(player.GetHotX()+1,player.GetHotY());
				player.ChangeDirection(newD);
			}
			else
			{
				if(player.Judge(player.GetHotX(),player.GetHotY(),newD)==0)
					player.ChangeDirection(newD);
            }
			if(GameOver==0)
			   player.DrawTank();
			ReleaseMutex(Mutex);
			Sleep(200-player.GetSpeed()*20);
		}
		else if(GetAsyncKeyState(VK_RIGHT))//按键右,同上
		{
			WaitForSingleObject(Mutex,INFINITE);
			newD=Right;
			player.Redraw();
			if(player.Judge(player.GetHotX(),player.GetHotY()+1,newD)==0)
			{
				player.ChangePos(player.GetHotX(),player.GetHotY()+1);
				player.ChangeDirection(newD);
			}
			else
			{
				if(player.Judge(player.GetHotX(),player.GetHotY(),newD)==0)
					player.ChangeDirection(newD);
            }
			if(GameOver==0)
			   player.DrawTank();
			ReleaseMutex(Mutex);
			Sleep(200-player.GetSpeed()*20);
		}
		else if(GetAsyncKeyState(VK_LEFT))//按键左,同上
		{
			WaitForSingleObject(Mutex,INFINITE);
			newD=Left;
			player.Redraw();
			if(player.Judge(player.GetHotX(),player.GetHotY()-1,newD)==0)
			{
				player.ChangePos(player.GetHotX(),player.GetHotY()-1);
				player.ChangeDirection(newD);
			}
			else
			{
				if(player.Judge(player.GetHotX(),player.GetHotY(),newD)==0)
					player.ChangeDirection(newD);
            }
			if(GameOver==0)
			   player.DrawTank();
			ReleaseMutex(Mutex);
			Sleep(110-player.GetSpeed()*10);
		}
		else if(GetAsyncKeyState(VK_SPACE))//按键空格,发射子弹
		{
			WaitForSingleObject(Mutex,INFINITE);
			if(player.FireEnable==1)//如果可以发射
			{
			   HANDLE bullet=CreateThread(NULL,0,Bulletfly,&(player.ID),0,NULL);//创建玩家子弹进程
			   CloseHandle(bullet);
			   player.FireEnable=0;
			}
			ReleaseMutex(Mutex);
        }
		if(EnemyExist==0&&GameOver==0)//如果敌人不存在生成新敌人
		{
			WaitForSingleObject(Mutex,INFINITE);
			EnemyExist=1;
			temp=CreateThread(NULL,0,TankRuning,NULL,0,NULL);//创建敌人线程
			CloseHandle(temp);
			ReleaseMutex(Mutex);
		}
	}
	system("cls");
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_BLUE);
	SetPos(20,10);
	cout<<"游戏结束"<

再过一会,还会有。

你可能感兴趣的:(c++)