- 游戏
- 2022-01-01 19:45:14 @
BUG堆成山,不要介意......
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <windows.h>
#include <ctime>
#include<fstream>
#include <conio.h>
using namespace std;
void output(char a[20][20],int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
char a[20][20]={{'|','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','|',},
{'|','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','|',},
};
int pdzd=0;//判定是否按下子弹
int zlie,zheng;//子弹的行和列
char scsr=0,scsr1=0;
char shu,pds,zf;
char name;
int n=20,m=20;
int pd1=0,pd2=0,pd3=0;
int lie,heng;//列坐标和横坐标
void manjiang(char *p);
DWORD WINAPI szd(LPVOID argv)
{
while(1)
{
int ppdd=0;
if(pdzd==1)
{
if(scsr=='d')
{
zlie=lie,zheng=heng;
while(a[zlie][zheng]!='_'&&a[zlie][zheng]!='|'&&ppdd==0)
{
system("cls");
//if(a[zlie][zheng]!='0')
//{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s'||pds=='j')
{
if(a[zlie][zheng]=='>')
a[zlie][zheng]=' ';
}
zheng++;
if(a[zlie][zheng]==' '||a[zlie][zheng]=='>')
a[zlie][zheng]='>';
if(a[zlie][zheng]=='.')
a[zlie][zheng]=' ',ppdd=1;
if(a[zlie][zheng]=='*')
a[zlie][zheng]='*';
//}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
Sleep(100);
}
pdzd=0,ppdd=0;
}
if(scsr=='a')
{
zlie=lie,zheng=heng;
while(a[zlie][zheng]!='_'&&a[zlie][zheng]!='|'&&ppdd==0)
{
system("cls");
//if(a[zlie][zheng]!='0')
//{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s'||pds=='j')
{
if(a[zlie][zheng]=='<')
a[zlie][zheng]=' ';
}
zheng--;
if(a[zlie][zheng]==' '||a[zlie][zheng]=='<')
a[zlie][zheng]='<';
if(a[zlie][zheng]=='.')
a[zlie][zheng]=' ',ppdd=1;
if(a[zlie][zheng]=='*')
a[zlie][zheng]='*';
//}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
Sleep(100);
}
pdzd=0,ppdd=0;
}
if(scsr=='w')
{
zlie=lie,zheng=heng;
while(a[zlie][zheng]!='_'&&a[zlie][zheng]!='|'&&ppdd==0)
{
system("cls");
//if(a[zlie][zheng]!='0')
//{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s'||pds=='j')
{
if(a[zlie][zheng]=='^')
a[zlie][zheng]=' ';
}
zlie--;
if(a[zlie][zheng]==' '||a[zlie][zheng]=='^')
a[zlie][zheng]='^';
if(a[zlie][zheng]=='.')
a[zlie][zheng]=' ',ppdd=1;
if(a[zlie][zheng]=='*')
a[zlie][zheng]='*';
//}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
Sleep(100);
}
pdzd=0,ppdd=0;
}
if(scsr=='s')
{
zlie=lie,zheng=heng;
while(a[zlie][zheng]!='_'&&a[zlie][zheng]!='|'&&ppdd==0)
{
system("cls");
//if(a[zlie][zheng]!='0')
//{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s'||pds=='j')
{
if(a[zlie][zheng]=='v')
a[zlie][zheng]=' ';
}
zlie++;
if(a[zlie][zheng]==' '||a[zlie][zheng]=='v')
a[zlie][zheng]='v';
if(a[zlie][zheng]=='.')
a[zlie][zheng]=' ',ppdd=1;
if(a[zlie][zheng]=='*')
a[zlie][zheng]='*';
//}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
Sleep(100);
}
pdzd=0,ppdd=0;
}
}
}
return 0;
}
void shang()
{
cout<<"=============================================================================="<<endl;
}
void xia()
{
cout<<"=============================================================================="<<endl;
}
/*char a[20][20]={{'!','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.',},
{'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','!',},
};*/
int main()
{
//这里是剧情
//jq1:lie=19,heng=19
//jq2:lie=0,heng=0
//......
manjiang("这是一个简单的绘画板,你只需要按WASD键走路(N键退出),想留下绘画痕迹就输入与字符有关的数\n");
manjiang("可放置物品代表的含义:\n");
manjiang("|:竖墙,只能纵向穿过,子弹无法击破\n");
manjiang("_:横墙,只能横向穿过,子弹无法击破\n");
manjiang(".:木板,穿不过,子弹可以击破\n");
manjiang("*:草丛,可以穿过,子弹也可以穿过\n");
manjiang("注:发射子弹时尽量不要走动,向同一个方向发射子弹第二次需要多摁三下(不能连续发两发)\n");
manjiang("输入要代表你的字符(一个)\n");
cin>>name;
manjiang("开始游戏\n");
system("cls");
output(a,n,m);
int pdzx=0;
int hh,hl;
char pdss;
HANDLE th=CreateThread( 0,0,szd,0,0,0);
system("cls");
a[10][10]=name;
lie=10;
heng=10;
output(a,n,m);
while(1)
{
if(pd3==0)
{
shu=getch();
}
pd3=0;
if(shu=='w'||shu=='W')
{
system("cls");
if(a[lie][heng]!='0')
{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s')
{
if(a[lie][heng]==name)
a[lie][heng]=' ';
}
lie--;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(lie==0||a[lie][heng]=='_'||a[lie][heng]=='.')
{
if(a[lie][heng]=='_')
a[lie][heng]='_';
else
a[lie][heng]=='.';
lie++;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(pdzx!=0)
{
if(a[hl][hh]==name)
a[hl][hh]=' ';
pdzx=0;
}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
}
if(shu=='s'||shu=='S')
{
system("cls");
if(a[lie][heng]!='0')
{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s')
{
if(a[lie][heng]==name)
a[lie][heng]=' ';
}
lie++;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(lie==19||a[lie][heng]=='_'||a[lie][heng]=='.')
{
if(a[lie][heng]=='_')
a[lie][heng]='_';
else
a[lie][heng]=='.';
lie--;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(pdzx!=0)
{
if(a[hl][hh]==name)
a[hl][hh]=' ';
pdzx=0;
}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
}
if(shu=='a'||shu=='A')
{
system("cls");
if(a[lie][heng]!='0')
{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s')
{
if(a[lie][heng]==name)
a[lie][heng]=' ';
}
heng--;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(heng==0||a[lie][heng]=='|'||a[lie][heng]=='.')
{
if(a[lie][heng]=='|')
a[lie][heng]='|';
else
a[lie][heng]=='.';
heng++;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(pdzx!=0)
{
if(a[hl][hh]==name)
a[hl][hh]=' ';
pdzx=0;
}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
}
if(shu=='d'||shu=='D')
{
system("cls");
if(a[lie][heng]!='0')
{
if(pds=='w'||pds=='d'||pds=='a'||pds=='s')
{
if(a[lie][heng]==name)
a[lie][heng]=' ';
}
heng++;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(heng==19||a[lie][heng]=='|'||a[lie][heng]=='.')
{
if(a[lie][heng]=='|')
a[lie][heng]='|';
else
a[lie][heng]=='.';
heng--;
if(a[lie][heng]==' '||a[lie][heng]==name)
a[lie][heng]=name;
}
if(pdzx!=0)
{
if(a[hl][hh]==name)
a[hl][hh]=' ';
pdzx=0;
}
output(a,n,m);
cout<<endl;
cout<<"表示符:j=发射子弹 y=清除 u=. i=| o=_ p=*";
}
if(shu=='n'||shu=='N')
break;
pds=getch();
if(pds=='w'||pds=='d'||pds=='a'||pds=='s')
{
shu=pds;
pd3=1;
}
else
{
if(pds=='u')
{
a[lie][heng]='.';
zf='.';
}
if(pds=='i')
{
a[lie][heng]='|';
zf='|';
}
if(pds=='o')
{
a[lie][heng]='_';
zf='_';
}
if(pds=='p')
{
a[lie][heng]='*';
zf='*';
}
if(pds=='y')
{
a[lie][heng]=' ';
zf=' ';
}
if(pds=='J'||pds=='j')
{
pdzd=1;
if(scsr=='j'||scsr=='J')
scsr=pdss;
pdss=scsr1;
//HANDLE th=CreateThread( 0,0,szd,0,0,0);
pdzx=1;
hl=lie,hh=heng;
}
}
if(shu!='j'&&shu!='J')
scsr1=shu;
scsr=shu;
}
}
void manjiang(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(10);
}
}
0 条评论
目前还没有评论...