射击游戏完全体
  • 板块灌水区
  • 楼主MC_CY_fromlg
  • 当前回复8
  • 已保存回复8
  • 发布时间2025/1/20 10:38
  • 上次更新2025/1/20 12:59:14
查看原帖
射击游戏完全体
1415919
MC_CY_fromlg楼主2025/1/20 10:38

如图,不使用Windows.h绘制画面

#include<bits/stdc++.h>
#include<time.h>
#include<conio.h>
char q[50][50];
int HP=100000;
char ch;
int c;
int jj=0,sc=0;
clock_t cl;
using namespace std;
int f(){
	cout<<"\n\n\n\n\n\n\n\n\n\n";
	for(int i=0;i<20;i++)
	{fwrite(q[i],sizeof(char),40,stdout);
	 cout<<"\n";}cout<<"\b血量"<<HP/1000<<"  \b得分"<<sc;} 
	 
int main(){
	int ldx[50]={-1};
int ldy[50]={-1};
int jdx[50]={-2};
int jdy[50]={-2};
int idx[50]={-2};
int idy[50]={-2};
int kdx[50]={-1};
int kdy[50]={-1};
int mtx[2][51]={-10};
for(int i=0;i<2;i++) for(int j=0;j<50;j++) mtx[i][j]=-10;
cout<<mtx[0][0]<<mtx[1][0];
	srand(time(NULL));
	for(int i=0;i<20;i++) for(int j=0;j<40;j++) q[i][j]='_';
	int a=0,b=0;
	q[a][b]='#';
	for(int l=0;;l++)
	{
		int p=f();
		cl=clock();
		ch=0;
		if(rand()%100==0)
		{
			jj=0;
			while(mtx[0][jj]!=-10&&jj<=49)
			{
				jj++;
			}
			mtx[0][jj]=rand()%20;
			mtx[1][jj]=rand()%40;
		}
		while(clock()-cl<=1){//5秒 
		if(kbhit()){
		ch=_getch();
		}}
		q[a][b]='_';
		q[a][b+1]='_';
		if(a>0) if(ch=='w')a--;
		if(a<19)if(ch=='s')a++;
		if(b>0)if(ch=='a')b--;
		if(b<39)if(ch=='d')b++;
		if(ch=='l') 
		{
			c=0;
			while(ldx[c]!=-1) 
			{
				c++;
			}
			ldx[c]=b;
			ldy[c]=a;
		}
		if(ch=='j') 
		{
			c=0;
			while(jdx[c]!=-2)
			{
				c++;
			}
			jdx[c]=b;
			jdy[c]=a;
		}
		if(ch=='k') 
		{
			c=0;
			while(kdx[c]!=-1)
			{
				c++;
			}
			kdx[c]=a;
			kdy[c]=b;
		}
		if(ch=='i') 
		{
			c=0;
			while(idx[c]!=-2)
			{
				c++;
			}
			idx[c]=a;
			idy[c]=b;
		}
		for(int i=0;i<50;i++)
		{
			if(ldx[i]!=-1)
			{
				q[ldy[i]][ldx[i]]='-';
				q[ldy[i]][ldx[i]-1]='_';
				ldx[i]++; 
			}
			if(ldx[i]>40)
			{
				ldx[i]=-1;
				ldy[i]=-1;
			}
			if(jdx[i]!=-2)
			{
				q[jdy[i]][jdx[i]]='-';
				q[jdy[i]][jdx[i]+1]='_';
				jdx[i]--; 
			}
			if(jdx[i]<-1)
			{
				jdx[i]=-2;
				jdy[i]=-2;
			}
			if(kdy[i]!=-1)
			{
				q[kdx[i]][kdy[i]]='|';
				q[kdx[i]-1][kdy[i]]='_';
				kdx[i]++; 
			}
			if(kdx[i]>20)
			{
				kdx[i]=-1;
				kdy[i]=-1;
			}
			if(idx[i]!=-2)
			{
				q[idx[i]][idy[i]]='|';
				q[idx[i]+1][idy[i]]='_';
				idx[i]--; 
			}
			if(idx[i]<-1)
			{
				idx[i]=-2;
				idy[i]=-2;
			}
		}
		for(int i=0;i<50;i++)
		{
			if(mtx[0][i]!=-10)
			{
				q[mtx[0][i]][mtx[1][i]]='&';
				for(int j=0;j<50;j++)
				{
					if(ldy[j]==mtx[0][i]&&ldx[j]==mtx[1][i])
					{
						q[mtx[0][i]][mtx[1][i]]='_';
						q[ldy[j]][ldx[j]]='_';
						q[ldy[j]][ldx[j]-1]='_';
						mtx[0][i]=-10;
						mtx[1][i]=-10;
						ldx[j]=-1;
						ldy[j]=-1;
						sc++;
					}
					if(jdy[j]==mtx[0][i]&&jdx[j]==mtx[1][i])
					{
						q[mtx[0][i]][mtx[1][i]]='_';
						q[jdy[j]][jdx[j]]='_';
						q[jdy[j]][jdx[j]+1]='_';
						mtx[0][i]=-10;
						mtx[1][i]=-10;
						jdx[j]=-1;
						jdy[j]=-1;
						sc++;
					}
					if(idx[j]==mtx[0][i]&&idy[j]==mtx[1][i])
					{
						q[mtx[0][i]][mtx[1][i]]='_';
						q[idx[j]][idy[j]]='_';
						q[idx[j]+1][idy[j]]='_';
						mtx[0][i]=-10;
						mtx[1][i]=-10;
						idx[j]=-1;
						idy[j]=-1;
						sc++;
					}
					if(kdx[j]==mtx[0][i]&&kdy[j]==mtx[1][i])
					{
						q[mtx[0][i]][mtx[1][i]]='_';
						q[kdx[j]][kdy[j]]='_';
						q[kdx[j]-1][kdy[j]]='_';
						mtx[0][i]=-10;
						mtx[1][i]=-10;
						kdx[j]=-1;
						kdy[j]=-1;
						
						sc++;
					}
					if(a==mtx[0][i]&&b==mtx[1][i]) HP--;
					
					if(rand()%3456==0)
					{
						q[mtx[0][i]][mtx[1][i]]='_';
								if(a-mtx[0][i]<0) mtx[0][i]--;
								if(a-mtx[0][i]>0) mtx[0][i]++;
								if(b-mtx[1][i]<0) mtx[1][i]--;
								if(b-mtx[1][i]>0) mtx[1][i]++;
					}}}}
		if(HP<=0) break;
		q[a][b]='#';
		}
	cout<<"\n==>GAME OVER<==\n\b得分:"<<sc;return 0;}
2025/1/20 10:38
加载中...