女士们,先生们,我亲爱的粉丝们,你们梦寐以求的DEV-C++双人抢滩登陆1.1版我写好了!!!
下面,开始教程!
1.回顾
上次我们写了1.0版,在次给大家看下代码:
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
string a[210]={
"############################################################",
"# # # # # #",
"# @# # # # #& #",
"# # # # #",
"# @ # # & #",
"# #### # # ### #",
"# @ # # # & #",
"#0 # # ### 1#",
"#0 * @ # # # & $ 1#",
"#0 # 1#",
"# @ ###### ### & #",
"# # # # #",
"# @ # # # & #",
"# # # #",
"# @ # # #### & #",
"# # # # #",
"# @ # # # # & #",
"# # # # #",
"# @# #### # #& #",
"# # # #",
"############################################################",
"wasd,ijkl上下左右移动,x,n攻击,o退出",
"1号玩家:XXX",
"2号玩家:XXX",
"1号基地水晶:XXXXXXXXXX",
"2号基地水晶:XXXXXXXXXX",
};
string a1[4]={
"1号玩家:XXX",
"1号玩家:XX",
"1号玩家:X",
"1号玩家:阵亡",
};
string a2[4]={
"2号玩家:XXX",
"2号玩家:XX",
"2号玩家:X",
"2号玩家:阵亡",
};
string b2[11]={
"2号基地水晶:XXXXXXXXXX",
"2号基地水晶:XXXXXXXXX",
"2号基地水晶:XXXXXXXX",
"2号基地水晶:XXXXXXX",
"2号基地水晶:XXXXXX",
"2号基地水晶:XXXXX",
"2号基地水晶:XXXX",
"2号基地水晶:XXX",
"2号基地水晶:XX",
"2号基地水晶:X",
"2号基地水晶:阵亡",
};
string b1[11]={
"1号基地水晶:XXXXXXXXXX",
"1号基地水晶:XXXXXXXXX",
"1号基地水晶:XXXXXXXX",
"1号基地水晶:XXXXXXX",
"1号基地水晶:XXXXXX",
"1号基地水晶:XXXXX",
"1号基地水晶:XXXX",
"1号基地水晶:XXX",
"1号基地水晶:XX",
"1号基地水晶:X",
"1号基地水晶:阵亡",
};
int main()
{
//system("color F8");
system("title 双人抢滩登陆1.0版本");//标题
system("mode con cols=60 lines=37");//设置窗口大小
string s="| 双 人 抢 滩 登 陆 |";
string s1="| 开 始 游 戏 |";
string s2="| 玩 法 说 明 |";
string s3="| 更 换 皮 肤 |";
cout<<"@==========================================================@"<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(10);//Sleep函数延长时间
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s1.size();i++){
cout<<s1[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s2.size();i++){
cout<<s2[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s3.size();i++){
cout<<s3[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
cout<<"|(按‘k’开始游戏,按‘b’看玩法说明,按‘d’换皮肤) |"<<endl;
cout<<"@==========================================================@"<<endl;
char ch;
ch=getch();//提取键盘指令
if(ch=='b'){
system("cls");
string c="使用wasd控制‘*’(玩家1)移动,ijkl控制‘$’(玩家2)移动,‘#’为边界,‘x’玩家一攻击,‘n’玩家二攻击,‘0,1’水晶";
string c1="玩家目标是通过战斗对方,击碎对方水晶,即可胜利。";
string c2="说明:此为抢滩登陆1.0版本。";
string c3="更新:增加了换肤功能。";
cout<<"版本:1.0"<<endl;
cout<<"按1直接显示所有内容,否则按2。"<<endl;
int q;
q=getch();
if(q=='1'){
cout<<c3<<endl<<c<<endl<<c1<<endl<<c2<<endl;
}
if(q=='2'){
for(int i=0;i<c3.size();i++){
cout<<c3[i];
Sleep(100);//延时
}
cout<<endl;
for(int i=0;i<c.size();i++){
cout<<c[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c1.size();i++){
cout<<c1[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c2.size();i++){
cout<<c2[i];
Sleep(100);
}
cout<<endl;
}
cout<<"按y开始游戏。按e换皮肤。";
ch=getch();
}
if(ch=='d'||ch=='e'){
system("cls");
cout<<"请选择皮肤:"<<endl;
cout<<"1.【日间色】"<<endl<<"2.【夜间色】"<<endl<<"3.【黑客】"<<endl<<"4.【科幻】"<<endl<<"5.【紫水晶】"<<endl;
cout<<"开始游戏请按q,换肤请输入序号。";
char sh;
while(1){
sh=getch();
if(sh-'0'==1)
system("color f0");
else if(sh-'0'==2)
system("color 0f");
else if(sh-'0'==3)
system("color 0a");
else if(sh-'0'==4)
system("color 09");
else if(sh-'0'==5)
system("color 01");
else if(sh=='q'){
ch='q';
break;
}
}
}
if(ch=='k'||ch=='y'||ch=='q'){
system("cls");//清屏
cout<<"加载代码中";
Sleep(2000);
system("cls");
cout<<"加载代码中 ◎ 20%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎ 40%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎◎ 60%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎ 80%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎◎ 100%";
Sleep(2000);
system("cls");
cout<<"完成!!!";
Sleep(2000);
system("cls");
for(int i=0;i<=25;i++){
cout<<a[i]<<endl;//将地图一行一行输出
}
char b;
int x=8,y=6,ex=8,ey=53,blooda=3,bloodb=3,blood1=10,blood0=10;//玩家初始坐标
//wasd移动
while(1){//重复运动
b=getch();
if(b=='a'){
if(a[x][y-1]!='#'&&a[x][y-1]!='@'&&a[x][y-1]!='&'&&a[x][y-1]!='$'&&a[x][y-1]!='0'&&a[x][y-1]!='1'){
a[x][y]=' ';
y--;
a[x][y]='*';
}
}
else if(b=='s'){
if(a[x+1][y]!='#'&&a[x+1][y]!='@'&&a[x+1][y]!='&'&&a[x+1][y]!='$'&&a[x+1][y]!='0'&&a[x+1][y]!='1'){
a[x][y]=' ';
x++;
a[x][y]='*';
}
}
else if(b=='d'){
if(a[x][y+1]!='#'&&a[x][y+1]!='@'&&a[x][y+1]!='&'&&a[x][y+1]!='$'&&a[x][y+1]!='0'&&a[x][y+1]!='1'){
a[x][y]=' ';
y++;
a[x][y]='*';
}
}
else if(b=='w'){
if(a[x-1][y]!='#'&&a[x-1][y]!='@'&&a[x-1][y]!='&'&&a[x-1][y]!='$'&&a[x-1][y]!='0'&&a[x-1][y]!='1'){
a[x][y]=' ';
x--;
a[x][y]='*';
}
}
else if(b=='j'){
if(a[ex][ey-1]!='#'&&a[ex][ey-1]!='@'&&a[ex][ey-1]!='&'&&a[ex][ey-1]!='*'&&a[ex][ey-1]!='0'&&a[ex][ey-1]!='1'){
a[ex][ey]=' ';
ey--;
a[ex][ey]='$';
}
}
else if(b=='k'){
if(a[ex+1][ey]!='#'&&a[ex+1][ey]!='@'&&a[ex+1][ey]!='&'&&a[ex+1][ey]!='*'&&a[ex+1][ey]!='0'&&a[ex+1][ey]!='1'){
a[ex][ey]=' ';
ex++;
a[ex][ey]='$';
}
}
else if(b=='l'){
if(a[ex][ey+1]!='#'&&a[ex][ey+1]!='@'&&a[ex][ey+1]!='&'&&a[ex][ey+1]!='*'&&a[ex][ey+1]!='0'&&a[ex][ey+1]!='1'){
a[ex][ey]=' ';
ey++;
a[ex][ey]='$';
}
}
else if(b=='i'){
if(a[ex-1][ey]!='#'&&a[ex-1][ey]!='@'&&a[ex-1][ey]!='&'&&a[ex-1][ey]!='*'&&a[ex-1][ey]!='0'&&a[ex-1][ey]!='1'){
a[ex][ey]=' ';
ex--;
a[ex][ey]='$';
}
}
else if(b=='x'){
if(a[x-1][y]=='$'||a[x][y-1]=='$'||a[x][y+1]=='$'){
bloodb--;
a[23]=a2[3-bloodb];
if(bloodb==0){
a[ex][ey]=' ';
ex=8;
ey=53;
a[ex][ey]='$';
bloodb=3;
a[23]=a2[0];
}
}
else if(a[x-1][y]=='1'||a[x][y-1]=='1'||a[x][y+1]=='1'){
blood1--;
a[25]=b2[10-blood1];
if(blood1==0){
system("cls");
cout<<"1号玩家抢占了2号玩家基地,1号玩家胜利!";
return 0;
}
}
}
else if(b=='n'){
if(a[ex-1][ey]=='*'||a[ex][ey-1]=='*'||a[ex][ey+1]=='*'){
blooda--;
a[22]=a1[3-blooda];
if(blooda==0){
a[x][y]=' ';
x=8;
y=6;
a[x][y]='*';
blooda=3;
a[22]=a1[0];
}
}
else if(a[ex-1][ey]=='0'||a[ex][ey-1]=='0'||a[ex][ey+1]=='0'){
blood0--;
a[24]=b1[10-blood0];
if(blood0==0){
system("cls");
cout<<"2号玩家抢占了1号玩家基地,2号玩家胜利!";
return 0;
}
}
}
if(b=='o'){//退出
return 0;
}
system("cls");
for(int i=0;i<=25;i++){
cout<<a[i]<<endl;
}
}
}
return 0;
}
2.1.1版教程
(1)玩法介绍
既然都到1.1版了,那玩法介绍模块也就要改,这里我就不再多说了,上这部分的代码:
if(ch=='b'){
system("cls");
string c="使用wasd控制‘*’(玩家1)移动,ijkl控制‘$’(玩家2)移动,‘#’为边界,‘x’玩家一攻击,‘n’玩家二攻击,‘0,1’水晶";
string c1="玩家目标是通过战斗对方,击碎对方水晶,即可胜利。";
string c2="说明:此为抢滩登陆1.1版本。";
string c3="更新:增加了乱斗模式,击杀对方的一分,谁先获得10分,即可胜利。";
cout<<"版本:1.1"<<endl;
cout<<"按1直接显示所有内容,否则按2。"<<endl;
int q;
q=getch();
if(q=='1'){
cout<<c3<<endl<<c<<endl<<c1<<endl<<c2<<endl;
}
if(q=='2'){
for(int i=0;i<c3.size();i++){
cout<<c3[i];
Sleep(100);//延时
}
cout<<endl;
for(int i=0;i<c.size();i++){
cout<<c[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c1.size();i++){
cout<<c1[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c2.size();i++){
cout<<c2[i];
Sleep(100);
}
cout<<endl;
}
cout<<"按y开始游戏。按e换皮肤。";
ch=getch();
}
(2)新的地图,新的模式
1.1版本,我增加了一个新的模式——乱斗模式,就是玩家们互相攻击,谁先击杀对方十次,
谁就获胜,那么击杀次数该怎么记录呢?
这里先把地图的代码贴出来:
string ad[210]={
"############################################################",
"# # # # # #",
"# @# # # # #& #",
"# # # # #",
"# @ # # & #",
"# #### # # ### #",
"# @ # # # & #",
"# # # ### #",
"# * @ # # # & $ #",
"# # #",
"# @ ###### ### & #",
"# # # # #",
"# @ # # # & #",
"# # # #",
"# @ # # #### & #",
"# # # # #",
"# @ # # # # & #",
"# # # # #",
"# @# #### # #& #",
"# # # #",
"############################################################",
"wasd,ijkl上下左右移动,x,n攻击,o退出",
"1号玩家:XXX",
"2号玩家:XXX",
"1,2号玩家击杀数:",
};
没错,除了去掉水晶,其他都没变。
那击杀次数该如何记录呢?
我们可以定义两个变量——akill和bkill,分别表示一号玩家击杀次数和二号玩家击杀次数。
我们可以把两个变量放到这里:
else if(b=='x'){
if(ad[x-1][y]=='$'||ad[x][y-1]=='$'||ad[x][y+1]=='$'){
bloodb--;
ad[23]=a2[3-bloodb];
if(bloodb==0){
akill++;//这里哦~
ad[ex][ey]=' ';
ex=8;
ey=53;
ad[ex][ey]='$';
bloodb=3;
ad[23]=a2[0];
}
}
}
else if(b=='n'){
if(ad[ex-1][ey]=='*'||ad[ex][ey-1]=='*'||ad[ex][ey+1]=='*'){
blooda--;
ad[22]=a1[3-blooda];
if(blooda==0){
bkill++;//这里哦~
ad[x][y]=' ';
x=8;
y=6;
ad[x][y]='*';
blooda=3;
ad[22]=a1[0];
}
}
}
没错,就是当对方血量为0时,说明我已经击杀了对方,这样就计数++一次,到每次刷新的时候再输出。
就是这么简单。
(3)胜利机制
这个非常简单,只要当akill或bkill==10的时候,说明击杀了对手十次,就获胜。
这个机制我加在了akill和bkill计数的后面,方便一点:
else if(b=='x'){
if(ad[x-1][y]=='$'||ad[x][y-1]=='$'||ad[x][y+1]=='$'){
bloodb--;
ad[23]=a2[3-bloodb];
if(bloodb==0){
akill++;
if(akill==10){
system("cls");
cout<<"1号玩家胜利!";
return 0;
}
ad[ex][ey]=' ';
ex=8;
ey=53;
ad[ex][ey]='$';
bloodb=3;
ad[23]=a2[0];
}
}
}
else if(b=='n'){
if(ad[ex-1][ey]=='*'||ad[ex][ey-1]=='*'||ad[ex][ey+1]=='*'){
blooda--;
ad[22]=a1[3-blooda];
if(blooda==0){
bkill++;
if(bkill==10){
system("cls");
cout<<"2号玩家胜利!";
return 0;
}
ad[x][y]=' ';
x=8;
y=6;
ad[x][y]='*';
blooda=3;
ad[22]=a1[0];
}
}
}
当然,计数变了,那么地图就要刷新了,最后的总代码为:
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
string a[210]={
"############################################################",
"# # # # # #",
"# @# # # # #& #",
"# # # # #",
"# @ # # & #",
"# #### # # ### #",
"# @ # # # & #",
"#0 # # ### 1#",
"#0 * @ # # # & $ 1#",
"#0 # 1#",
"# @ ###### ### & #",
"# # # # #",
"# @ # # # & #",
"# # # #",
"# @ # # #### & #",
"# # # # #",
"# @ # # # # & #",
"# # # # #",
"# @# #### # #& #",
"# # # #",
"############################################################",
"wasd,ijkl上下左右移动,x,n攻击,o退出",
"1号玩家:XXX",
"2号玩家:XXX",
"1号基地水晶:XXXXXXXXXX",
"2号基地水晶:XXXXXXXXXX",
};
string ad[210]={
"############################################################",
"# # # # # #",
"# @# # # # #& #",
"# # # # #",
"# @ # # & #",
"# #### # # ### #",
"# @ # # # & #",
"# # # ### #",
"# * @ # # # & $ #",
"# # #",
"# @ ###### ### & #",
"# # # # #",
"# @ # # # & #",
"# # # #",
"# @ # # #### & #",
"# # # # #",
"# @ # # # # & #",
"# # # # #",
"# @# #### # #& #",
"# # # #",
"############################################################",
"wasd,ijkl上下左右移动,x,n攻击,o退出",
"1号玩家:XXX",
"2号玩家:XXX",
"1,2号玩家击杀数:",
};
string a1[4]={
"1号玩家:XXX",
"1号玩家:XX",
"1号玩家:X",
"1号玩家:阵亡",
};
string a2[4]={
"2号玩家:XXX",
"2号玩家:XX",
"2号玩家:X",
"2号玩家:阵亡",
};
string b2[11]={
"2号基地水晶:XXXXXXXXXX",
"2号基地水晶:XXXXXXXXX",
"2号基地水晶:XXXXXXXX",
"2号基地水晶:XXXXXXX",
"2号基地水晶:XXXXXX",
"2号基地水晶:XXXXX",
"2号基地水晶:XXXX",
"2号基地水晶:XXX",
"2号基地水晶:XX",
"2号基地水晶:X",
"2号基地水晶:阵亡",
};
string b1[11]={
"1号基地水晶:XXXXXXXXXX",
"1号基地水晶:XXXXXXXXX",
"1号基地水晶:XXXXXXXX",
"1号基地水晶:XXXXXXX",
"1号基地水晶:XXXXXX",
"1号基地水晶:XXXXX",
"1号基地水晶:XXXX",
"1号基地水晶:XXX",
"1号基地水晶:XX",
"1号基地水晶:X",
"1号基地水晶:阵亡",
};
int main()
{
system("title 双人抢滩登陆1.0版本");//标题
system("mode con cols=60 lines=37");//设置窗口大小
string s="| 双 人 抢 滩 登 陆 |";
string s1="| 开 始 游 戏 |";
string s2="| 玩 法 说 明 |";
string s3="| 更 换 皮 肤 |";
cout<<"@==========================================================@"<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(10);//Sleep函数延长时间
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s1.size();i++){
cout<<s1[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s2.size();i++){
cout<<s2[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
for(int i=0;i<s3.size();i++){
cout<<s3[i];
Sleep(10);
}
cout<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
cout<<"| |"<<endl;
cout<<"|(按‘k’开始游戏,按‘b’看玩法说明,按‘d’换皮肤) |"<<endl;
cout<<"@==========================================================@"<<endl;
char ch;
ch=getch();//提取键盘指令
if(ch=='b'){
system("cls");
string c="使用wasd控制‘*’(玩家1)移动,ijkl控制‘$’(玩家2)移动,‘#’为边界,‘x’玩家一攻击,‘n’玩家二攻击,‘0,1’水晶";
string c1="玩家目标是通过战斗对方,击碎对方水晶,即可胜利。";
string c2="说明:此为抢滩登陆1.1版本。";
string c3="更新:增加了乱斗模式,击杀对方的一分,谁先获得10分,即可胜利。";
cout<<"版本:1.1"<<endl;
cout<<"按1直接显示所有内容,否则按2。"<<endl;
int q;
q=getch();
if(q=='1'){
cout<<c3<<endl<<c<<endl<<c1<<endl<<c2<<endl;
}
if(q=='2'){
for(int i=0;i<c3.size();i++){
cout<<c3[i];
Sleep(100);//延时
}
cout<<endl;
for(int i=0;i<c.size();i++){
cout<<c[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c1.size();i++){
cout<<c1[i];
Sleep(100);
}
cout<<endl;
for(int i=0;i<c2.size();i++){
cout<<c2[i];
Sleep(100);
}
cout<<endl;
}
cout<<"按y开始游戏。按e换皮肤。";
ch=getch();
}
if(ch=='d'||ch=='e'){
system("cls");
cout<<"请选择皮肤:"<<endl;
cout<<"1.【日间色】"<<endl<<"2.【夜间色】"<<endl<<"3.【黑客】"<<endl<<"4.【科幻】"<<endl<<"5.【紫水晶】"<<endl;
cout<<"开始游戏请按q,换肤请输入序号。";
char sh;
while(1){
sh=getch();
if(sh-'0'==1)
system("color f0");
else if(sh-'0'==2)
system("color 0f");
else if(sh-'0'==3)
system("color 0a");
else if(sh-'0'==4)
system("color 09");
else if(sh-'0'==5)
system("color 01");
else if(sh=='q'){
ch='q';
break;
}
}
}
if(ch=='k'||ch=='y'||ch=='q'){
system("cls");
cout<<"请选择模式:"<<endl;
cout<<"1.普通模式"<<endl<<"2.乱斗模式"<<endl;
int g;
cin>>g;
if(g==1){
system("cls");//清屏
cout<<"加载代码中";
Sleep(2000);
system("cls");
cout<<"加载代码中 ◎ 20%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎ 40%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎◎ 60%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎ 80%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎◎ 100%";
Sleep(2000);
system("cls");
cout<<"完成!!!";
Sleep(2000);
system("cls");
for(int i=0;i<=25;i++){
cout<<a[i]<<endl;//将地图一行一行输出
}
char b;
int x=8,y=6,ex=8,ey=53,blooda=3,bloodb=3,blood1=10,blood0=10;//玩家初始坐标
//wasd移动
while(1){//重复运动
b=getch();
if(b=='a'){
if(a[x][y-1]!='#'&&a[x][y-1]!='@'&&a[x][y-1]!='&'&&a[x][y-1]!='$'&&a[x][y-1]!='0'&&a[x][y-1]!='1'){
a[x][y]=' ';
y--;
a[x][y]='*';
}
}
else if(b=='s'){
if(a[x+1][y]!='#'&&a[x+1][y]!='@'&&a[x+1][y]!='&'&&a[x+1][y]!='$'&&a[x+1][y]!='0'&&a[x+1][y]!='1'){
a[x][y]=' ';
x++;
a[x][y]='*';
}
}
else if(b=='d'){
if(a[x][y+1]!='#'&&a[x][y+1]!='@'&&a[x][y+1]!='&'&&a[x][y+1]!='$'&&a[x][y+1]!='0'&&a[x][y+1]!='1'){
a[x][y]=' ';
y++;
a[x][y]='*';
}
}
else if(b=='w'){
if(a[x-1][y]!='#'&&a[x-1][y]!='@'&&a[x-1][y]!='&'&&a[x-1][y]!='$'&&a[x-1][y]!='0'&&a[x-1][y]!='1'){
a[x][y]=' ';
x--;
a[x][y]='*';
}
}
else if(b=='j'){
if(a[ex][ey-1]!='#'&&a[ex][ey-1]!='@'&&a[ex][ey-1]!='&'&&a[ex][ey-1]!='*'&&a[ex][ey-1]!='0'&&a[ex][ey-1]!='1'){
a[ex][ey]=' ';
ey--;
a[ex][ey]='$';
}
}
else if(b=='k'){
if(a[ex+1][ey]!='#'&&a[ex+1][ey]!='@'&&a[ex+1][ey]!='&'&&a[ex+1][ey]!='*'&&a[ex+1][ey]!='0'&&a[ex+1][ey]!='1'){
a[ex][ey]=' ';
ex++;
a[ex][ey]='$';
}
}
else if(b=='l'){
if(a[ex][ey+1]!='#'&&a[ex][ey+1]!='@'&&a[ex][ey+1]!='&'&&a[ex][ey+1]!='*'&&a[ex][ey+1]!='0'&&a[ex][ey+1]!='1'){
a[ex][ey]=' ';
ey++;
a[ex][ey]='$';
}
}
else if(b=='i'){
if(a[ex-1][ey]!='#'&&a[ex-1][ey]!='@'&&a[ex-1][ey]!='&'&&a[ex-1][ey]!='*'&&a[ex-1][ey]!='0'&&a[ex-1][ey]!='1'){
a[ex][ey]=' ';
ex--;
a[ex][ey]='$';
}
}
else if(b=='x'){
if(a[x-1][y]=='$'||a[x][y-1]=='$'||a[x][y+1]=='$'){
bloodb--;
a[23]=a2[3-bloodb];
if(bloodb==0){
a[ex][ey]=' ';
ex=8;
ey=53;
a[ex][ey]='$';
bloodb=3;
a[23]=a2[0];
}
}
else if(a[x-1][y]=='1'||a[x][y-1]=='1'||a[x][y+1]=='1'){
blood1--;
a[25]=b2[10-blood1];
if(blood1==0){
system("cls");
cout<<"1号玩家抢占了2号玩家基地,1号玩家胜利!";
return 0;
}
}
}
else if(b=='n'){
if(a[ex-1][ey]=='*'||a[ex][ey-1]=='*'||a[ex][ey+1]=='*'){
blooda--;
a[22]=a1[3-blooda];
if(blooda==0){
a[x][y]=' ';
x=8;
y=6;
a[x][y]='*';
blooda=3;
a[22]=a1[0];
}
}
else if(a[ex-1][ey]=='0'||a[ex][ey-1]=='0'||a[ex][ey+1]=='0'){
blood0--;
a[24]=b1[10-blood0];
if(blood0==0){
system("cls");
cout<<"2号玩家抢占了1号玩家基地,2号玩家胜利!";
return 0;
}
}
}
if(b=='o'){//退出
return 0;
}
system("cls");
for(int i=0;i<=25;i++){
cout<<a[i]<<endl;
}
}
}
else if(g==2){
char b;
int x=8,y=6,ex=8,ey=53,blooda=3,bloodb=3,akill=0,bkill=0;//玩家初始坐标
system("cls");//清屏
cout<<"加载代码中";
Sleep(2000);
system("cls");
cout<<"加载代码中 ◎ 20%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎ 40%";
Sleep(2000);
system("cls");
cout<<"加载地图中 ◎◎◎ 60%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎ 80%";
Sleep(2000);
system("cls");
cout<<"生成地图中 ◎◎◎◎◎ 100%";
Sleep(2000);
system("cls");
cout<<"完成!!!";
Sleep(2000);
system("cls");
for(int i=0;i<=24;i++){
cout<<ad[i]<<endl;//将地图一行一行输出
}
cout<<akill<<' '<<bkill;
//wasd移动
while(1){//重复运动
b=getch();
if(b=='a'){
if(ad[x][y-1]!='#'&&ad[x][y-1]!='@'&&ad[x][y-1]!='&'&&ad[x][y-1]!='$'&&ad[x][y-1]!='0'&&ad[x][y-1]!='1'){
ad[x][y]=' ';
y--;
ad[x][y]='*';
}
}
else if(b=='s'){
if(ad[x+1][y]!='#'&&ad[x+1][y]!='@'&&ad[x+1][y]!='&'&&ad[x+1][y]!='$'&&ad[x+1][y]!='0'&&ad[x+1][y]!='1'){
ad[x][y]=' ';
x++;
ad[x][y]='*';
}
}
else if(b=='d'){
if(ad[x][y+1]!='#'&&ad[x][y+1]!='@'&&ad[x][y+1]!='&'&&ad[x][y+1]!='$'&&ad[x][y+1]!='0'&&ad[x][y+1]!='1'){
ad[x][y]=' ';
y++;
ad[x][y]='*';
}
}
else if(b=='w'){
if(ad[x-1][y]!='#'&&ad[x-1][y]!='@'&&ad[x-1][y]!='&'&&ad[x-1][y]!='$'&&ad[x-1][y]!='0'&&ad[x-1][y]!='1'){
ad[x][y]=' ';
x--;
ad[x][y]='*';
}
}
else if(b=='j'){
if(ad[ex][ey-1]!='#'&&ad[ex][ey-1]!='@'&&ad[ex][ey-1]!='&'&&ad[ex][ey-1]!='*'&&ad[ex][ey-1]!='0'&&ad[ex][ey-1]!='1'){
ad[ex][ey]=' ';
ey--;
ad[ex][ey]='$';
}
}
else if(b=='k'){
if(ad[ex+1][ey]!='#'&&ad[ex+1][ey]!='@'&&ad[ex+1][ey]!='&'&&ad[ex+1][ey]!='*'&&ad[ex+1][ey]!='0'&&ad[ex+1][ey]!='1'){
ad[ex][ey]=' ';
ex++;
ad[ex][ey]='$';
}
}
else if(b=='l'){
if(ad[ex][ey+1]!='#'&&ad[ex][ey+1]!='@'&&ad[ex][ey+1]!='&'&&ad[ex][ey+1]!='*'&&ad[ex][ey+1]!='0'&&ad[ex][ey+1]!='1'){
ad[ex][ey]=' ';
ey++;
ad[ex][ey]='$';
}
}
else if(b=='i'){
if(ad[ex-1][ey]!='#'&&ad[ex-1][ey]!='@'&&ad[ex-1][ey]!='&'&&ad[ex-1][ey]!='*'&&ad[ex-1][ey]!='0'&&ad[ex-1][ey]!='1'){
ad[ex][ey]=' ';
ex--;
ad[ex][ey]='$';
}
}
else if(b=='x'){
if(ad[x-1][y]=='$'||ad[x][y-1]=='$'||ad[x][y+1]=='$'){
bloodb--;
ad[23]=a2[3-bloodb];
if(bloodb==0){
akill++;
if(akill==10){
system("cls");
cout<<"1号玩家胜利!";
return 0;
}
ad[ex][ey]=' ';
ex=8;
ey=53;
ad[ex][ey]='$';
bloodb=3;
ad[23]=a2[0];
}
}
}
else if(b=='n'){
if(ad[ex-1][ey]=='*'||ad[ex][ey-1]=='*'||ad[ex][ey+1]=='*'){
blooda--;
ad[22]=a1[3-blooda];
if(blooda==0){
bkill++;
if(bkill==10){
system("cls");
cout<<"2号玩家胜利!";
return 0;
}
ad[x][y]=' ';
x=8;
y=6;
ad[x][y]='*';
blooda=3;
ad[22]=a1[0];
}
}
}
if(b=='o'){//退出
return 0;
}
system("cls");
for(int i=0;i<=24;i++){
cout<<ad[i]<<endl;
}
cout<<akill<<' '<<bkill;
}
}
}
return 0;
}
注意:要在DEV-C++里运行,亲测有效!
(注:我马上要开新专栏了,别忘了关注哦~)
最后投个票:
本文含有隐藏内容,请 开通VIP 后查看