人机打怪小游戏(非常人机)

按q攻击 按箭头进行控制 玩家是@ 怪是* 攻击是^

cpp 复制代码
​
​
#include<bits/stdc++.h>
#include<Windows.h>
#include<conio.h>
#define fr(i,a,b) for(int i=a;i<=b;i++)
#define rd(a,b) rand()%(b-a+1)+a
using namespace std;
int x=16,y=21,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1},timeand,defe,times_q;
int b[2][1100000],q1=1,z1,times,vik[1100000];
int c[2][1100000],q2=1,z2,vis[1100000];
const int N=30,M=40;
void color(int clr)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),clr);
}
void gb_close()
{
	CONSOLE_CURSOR_INFO cur;
	cur.dwSize=1;
	cur.bVisible=FALSE;
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(handle,&cur);
}
void gb_jump(int x,int y)
{
	gb_close();
	COORD pos;
	pos.X=x;
	pos.Y=y;
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(handle,pos);
	gb_close();
}
void print()
{
	color(11);
	for(int i=1;i<=M+1;i++)
	{
		gb_jump(i,1);
		printf("_");
	}
	for(int i=2;i<=N+1;i++)
	{
		gb_jump(1,i);
		printf("|");
		gb_jump(M+1,i);
		printf("|");
	}
	for(int i=2;i<=M;i++)
	{
		gb_jump(i,N+1);
		printf("_");
	}
	gb_jump(50,15);
	printf("得分:%d",defe); 
	color(7);
}
void make()
{
	b[0][++z1]=2;
	b[1][z1]=rd(2,40);
}
void make2()
{
	c[0][++z2]=x-1;
	c[1][z2]=y;
}
void KO()
{
	system("cls");
	color(4);
	printf("  |       /      _____     \n");
	printf("  |      /      /     \\    \n");
	printf("  |     /      /       \\   \n");
	printf("  |    /      |         |  \n");
	printf("  |   /       |         |  \n");
	printf("  |  /        |         |  \n");
	printf("  | /         |         |  \n");
	printf("  |/          |         |         得分:%d \n",defe/30);
	printf("  |\\          |         |  \n");
	printf("  | \\         |         |  \n");
	printf("  |  \\        |         |  \n");
	printf("  |   \\       |         |  \n");
	printf("  |    \\      |         |  \n");
	printf("  |     \\      \\        /  \n");
	printf("  |      \\      \\      /   \n");
	printf("  |       \\      \\____/    \n");
	color(0);
	Sleep(100000);
	exit(0);
}
int main()
{
	system("mode con cols=3000 lines=200");
	srand(time(NULL));
	system("pause");
	system("cls");
	printf("选择难度:\n1.入门		2.普通		3.较难		4.地狱\n");
	int qjqjq;
	scanf("%d",&qjqjq);
	if(qjqjq==1)
	{
		timeand=2e4;
	}
	else if(qjqjq==2)
	{
		timeand=1e4;
	}
	else if(qjqjq==3)
	{
		timeand=5e3;
	}
	else if(qjqjq==4)
	{
		timeand=2e3;
	}
	else
	{
		system("cls");
		return 0;
	}
	system("cls");
	printf("开始");
	Sleep(3000);
	system("cls");
	print();
	gb_jump(y,x);
	color(6);
	printf("@");
	color(7);
	while(true)
	{
		if(times_q>=100)
		{
			system("cls");
			color(4);
			printf("吃屎吧!!!!!!!!!!!!!");
			Sleep(10000000);
			return 0; 
		}
		while(!kbhit())
		{
			times++;
			if(times>=timeand)
			{
				color(6);
				gb_jump(y,x);
				printf("@");
				color(7);
				defe++;
				color(11);
				gb_jump(50,15);
				printf("得分:%d",defe/30);
				color(7);
				times=0;
				make();
				for(int i=q1;i<=z1;i++)
				{
					if(vik[i])
					{
						continue;
					}
					if(b[0][i]>=N)
					{
						q1++;
						gb_jump(b[1][i],b[0][i]);
						printf(" ");
						continue;
					}
					gb_jump(b[1][i],b[0][i]);
					printf(" ");
					b[0][i]++;
					gb_jump(b[1][i],b[0][i]);
					if(b[0][i]==x&&b[1][i]==y)
					{
						KO();
					}
					bool flag=0;
					for(int j=q2;j<=z2;j++)
					{
						if(vis[j]==0&&b[0][i]==c[0][j]&&b[1][i]==c[1][j])
						{
							vik[i]=1;
							vis[j]=1;
							flag=1;
							gb_jump(c[1][j],c[0][j]);
							printf(" ");
							break;
						}
					}
					if(!flag)
					{
						color(13);
						gb_jump(b[1][i],b[0][i]);
						printf("*");
						color(7);
					}
				}
				for(int i=q2;i<=z2;i++)
				{
					if(vis[i])
					{
						continue;
					}
					if(c[0][i]<=2)
					{
						q2++;
						gb_jump(c[1][i],c[0][i]);
						printf(" ");
						continue;
					}
					gb_jump(c[1][i],c[0][i]);
					printf(" ");
					c[0][i]--;
					gb_jump(c[1][i],c[0][i]);
					bool flag2=0;
					for(int j=q1;j<=z1;j++)
					{
						if(vik[j]==0&&b[0][j]==c[0][i]&&b[1][j]==c[1][i])
						{
							vik[j]=1;
							vis[i]=1;
							flag2=1;
							gb_jump(b[1][i],b[0][i]);
							printf(" ");
							break;
						}
					}
					if(!flag2)
					{
						color(10);
						printf("^");
						color(7);
					}
				}
			}
		}
		char tsg=getch();
		if(tsg=='a')
		{
			char lk=getch();
			while(lk!='a')
			{
				lk=getch();
			}
			continue;
		}
		if(tsg=='q')
		{
			times_q++;
			make2();
			continue;
		}
		char k=getch();
		if(k!=72&&k!=75&&k!=77&&k!=80&&k!='a'&&k!='q')
		{
			continue;
		}
		gb_jump(y,x);
		printf(" ");
		if(k==72)
		{
			if(x>2)
			{
				x--;
			}
		}
		if(k==75)
		{
			if(y>2)
			{
				y--;
			}
		}
		if(k==77)
		{
			if(y<M)
			{
				y++;
			}
		}
		if(k==80)
		{
			if(x<N)
			{
				x++;
			}
		}
		gb_jump(y,x);
		color(6);
		printf("@");
		color(7);
	}
	return 0;
}

​

​
相关推荐
octopus_c1 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
東隅已逝,桑榆非晚1 小时前
算法1. 双指针法-移动零
c++·算法
悠仁さん3 小时前
【C++】set map 使用
java·前端·c++
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】ChatServer问题修复
c++·学习·ai·大模型·sdk
扶尔魔ocy3 小时前
【QT C++】常用设计模式
c++·设计模式
晚风予卿云月4 小时前
【C++高并发内存池】 2.ThreadCache设计
开发语言·c++·高并发内存池·tcmalloc
東隅已逝,桑榆非晚4 小时前
红黑树:从概念到实现
数据结构·c++·笔记·学习
艾莉丝努力练剑5 小时前
【AI大模型接入SDK】ChatServer接口测试
网络·c++·人工智能·学习·ai·大模型·sdk
D e re k ZH5 小时前
C++ 模板与泛型编程进阶(No 2)
开发语言·c++
青少儿编程课堂5 小时前
蓝桥杯青少组图形化+信息素养+电子学会Scratch考级:校园口算闯关解析
c++·python·算法·bfs·信息学竞赛