贪吃蛇
查看原帖
贪吃蛇
1382002
liqinglang楼主2024/12/1 15:10
#include<bits/stdc++.h>
#include<Windows.h>
#define n(x) rand()%(x)
#define p(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1 : 0)
using namespace std;
void hideCursor() {
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_CURSOR_INFO cci;
	GetConsoleCursorInfo(hOut, &cci);
	cci.bVisible = 0;
	SetConsoleCursorInfo(hOut, &cci);
}

int a[25][55];
char r='y';
int main() {
	hideCursor();
	
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
	cout<<"       *****\n";
	Sleep(2);
	cout<<"        *****\n";
	Sleep(2);
	cout<<"         *****\n";
	Sleep(2);
	cout<<"          *****\n";
	Sleep(2);
	cout<<"           *****\n";
	Sleep(2);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
	cout<<"************\n";
	Sleep(2);
	cout<<"************\n";
	Sleep(2);
	cout<<"************\n";
	Sleep(2);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
	cout<<" Game-Box\n";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	Sleep(5);

	//锟斤拷迎锟斤拷锟斤拷
	for(int i=1; i<=9; i++) {
		for(int j=1; j<=50; j++) {
			if(i==1 || j==1 || j==50) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
				cout<<"▇";
				Sleep(1);
			} else {
				cout<<" ";
			}
		}
		cout<<"\n";
	}
	cout<<"▇                   请";
	Sleep(1);
	cout<<"输";
	Sleep(1);
	cout<<"入";
	Sleep(1);
	cout<<"密";
	Sleep(1);
	cout<<"码";
	Sleep(1);
	cout<<":                 ▇\n";
	for(int i=11; i<=20; i++) {
		for(int j=1; j<=50; j++) {
			if(i==1 || j==1 || j==50 || i==20) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
				cout<<"▇";
				Sleep(1);
			} else {
				cout<<" ";
			}
		}
		cout<<"\n";
	}
	string s1;
	cin>>s1;
	if(s1=="lql123") {
		cout<<"开始\n";
		Sleep(5);
	} else {
		return 0;
	}



	int s=0,sw=0,k,h;
	bool f=true;
	int x=10,y=25;
	for(int i=1; i<=20; i++) {
		for(int j=1; j<=50; j++) {
			a[i][j]=0;
		}
	}
	for(int i=1; i<=50; i++) {
		a[1][i]=1;
	}
	for(int i=1; i<=20; i++) {
		a[i][1]=1;
		a[i][50]=1;
	}
	for(int i=1; i<=50; i++) {
		a[20][i]=1;
	}
	a[x][y]=3;













	//锟斤拷始
	for(int o=1;; o++) {
		hideCursor();
		system("cls");
		

		
		
		
		
		
		
		
		if(sw*3==30) {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
			system("mode con cols=60 lines=37");
			cout<<"▇▇▇▇▇▇▇▇▇▇▇▇\n";
			cout<<"▇  你赢啦  ▇\n";
			cout<<"▇  !!!  ▇\n";
			cout<<"▇▇▇▇▇▇▇▇▇▇▇▇\n";
			cout<<"请安空格键结束……";
			while(!p(' ')) {

			}
			return 0;
		}
		
		
		
		if(o==80) {
			break;
		}
		system("cls 10000");
		if(f==true) {
			o=1;
			srand(time(NULL));
			k=n(17);
			srand(time(NULL));
			h=n(47);
			a[k][h]=2;
			f=false;
		}
		for(int i=1; i<=20; i++) {
			for(int j=1; j<=50; j++) {
				if(a[i][j]==0) {
					cout<<" ";
				} else if(a[i][j]==2) {
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
					cout<<"●";
				} else if(a[i][j]==3) {
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
					cout<<"◆";
				} else {
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
					cout<<"▇";
				}
			}
			cout<<"\n";
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		cout<<"力量:"<<sw*3<<"   已吃食物数量"<<sw<<"   暂停:空格键   移动:↑ ↓ ← →      \n剩余时间:"<<80-o<<" (时间不多啦!!!)    位置:行:"<<x<<"  列:"<<y<<"\n";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
		cout<<"作者:李晴朗\n";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		if(p(VK_UP)) {
			r='s';
			if(a[x-1][y]==2) {
				o=1;
				sw++;
				f=true;
				a[x][y]=0;
				a[--x][y]=3;
			} else if(a[x-1][y]==1) {
				cout<<"你死啦!!!";
				return 0;
			} else {
				a[x][y]=0;
				a[--x][y]=3;
			}
		}
		if(p(VK_DOWN)) {
			r='x';
			if(a[x+1][y]==2) {
				sw++;
				o=1;
				f=true;
				a[x][y]=0;
				a[++x][y]=3;
			} else if(a[x+1][y]==1) {
				cout<<"你死啦!!!";
				return 0;
			} else {
				a[x][y]=0;
				a[++x][y]=3;
			}
		}
		if(p(VK_LEFT)) {
			r='z';
			if(a[x][y-1]==2) {
				sw++;
				o=1;
				f=true;
				a[x][y]=0;
				a[x][--y]=3;
			} else if(a[x][y-1]==1) {
				cout<<"你死啦!!!";
				return 0;
			} else {
				a[x][y]=0;
				a[x][--y]=3;
			}
		}
		if(p(VK_RIGHT)) {
			r='y';
			if(a[x][y+1]==2) {
				sw++;
				o=1;
				f=true;
				a[x][y]=0;
				a[x][++y]=3;
			} else if(a[x][y+1]==1) {
				cout<<"你死啦!!!";
				return 0;
			} else {
				a[x][y]=0;
				a[x][++y]=3;
			}
		}
		if(p(' ')) {
			cout<<"游戏已暂停……\n请按B键继续:";
			for(;;) {
				if(p('B')) {
					break;
				}
			}
		}
		if(p('J')) {
			o=1;
			a[k][h]=0;
			srand(time(NULL));
			k=n(17);
			srand(time(NULL));
			h=n(47);
			a[k][h]=2;
			f=false;
		}
		if(p('K')){
			cout<<"姓名:李晴朗   密码:lql123 \n";
			Sleep(10000);
		}
	}
	return 0;
}
2024/12/1 15:10
加载中...