专栏文章

(4)TGLXJ-666-quick

休闲·娱乐参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipubqsx
此快照首次捕获于
2025/12/03 18:04
3 个月前
此快照最后确认于
2025/12/03 18:04
3 个月前
查看原文
CPP
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
#define kd(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
map<pair<int,int>,char> mp;
const int winx=666,winy=666;
bool win=1,run=0;
struct player{
	int x,y,quick;
	char foot;
}you;
char square(){
	int x=rand()%100+1;
	if(x>=1 && x<=80)         return '.';
	else if(x>=81 && x<=100)  return '#';
}
void init(){
	srand(time(0));
	you.x=you.y=0;
	win=1;
	run=0;
	you.quick=1500;
	you.foot='.';
	mp.clear();
	int x1=you.x-5,y1=you.y-5,x2=you.x+5,y2=you.y+5;
	for(int i=x1;i<=x2;i++){
		for(int j=y1;j<=y2;j++){
			mp[{i,j}]=square();
		}
	}
	mp[{0,0}]='Y';
	mp[{winx,winy}]='H';
	mp[{-winx,winy}]='H';
	mp[{winx,-winy}]='H';
	mp[{-winx,-winy}]='H';
}
bool check(int x,int y){
	if(mp[{x,y}]=='#') return 0;
	return 1;
}
void run_you(){
	if(kd(VK_LEFT) && check(you.x,you.y-1)){
		mp[{you.x,you.y}]=you.foot;
		swap(you.foot,mp[{you.x,you.y-1}]);
		you.y--;
		mp[{you.x,you.y}]='Y';
		run=1;
	}
	if(kd(VK_UP) && check(you.x-1,you.y)){
		mp[{you.x,you.y}]=you.foot;
		swap(you.foot,mp[{you.x-1,you.y}]);
		you.x--;
		mp[{you.x,you.y}]='Y';
		run=1;
	}
	if(kd(VK_RIGHT) && check(you.x,you.y+1)){
		mp[{you.x,you.y}]=you.foot;
		swap(you.foot,mp[{you.x,you.y+1}]);
		you.y++;
		mp[{you.x,you.y}]='Y';
		run=1;
	}
	if(kd(VK_DOWN) && check(you.x+1,you.y)){
		mp[{you.x,you.y}]=you.foot;
		swap(you.foot,mp[{you.x+1,you.y}]);
		you.x++;
		mp[{you.x,you.y}]='Y';
		run=1;
	}
}
void change(){
	int x1=you.x-5,y1=you.y-5,x2=you.x+5,y2=you.y+5;
	for(int i=x1;i<=x2;i++){
		for(int j=y1;j<=y2;j++){
			if(mp.find({i,j})==mp.end()) mp[{i,j}]=square();
		}
	}
	if(run){
		you.quick=1500;
		run=0;
	}else{
		you.quick-=75;
	}
}
void gotoxy(short x,short y){ 
	COORD pos={x,y};
	HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut,pos);
	return ;
}
void print(){
	gotoxy(0,0);
	int x1=you.x-5,y1=you.y-5,x2=you.x+5,y2=you.y+5;
	for(int i=x1;i<=x2;i++){
		for(int j=y1;j<=y2;j++){
			printf("%c",mp[{i,j}]);
		}
		printf("\n");
	}
	printf("x=%-10dy=%-10dquck=%-10d",you.x,you.y,you.quick);
}
bool you_win_or_no(){
	if(you.foot=='H'){
		return 0;
	}else if(you.quick==0){
		win=0;
		return 0;
	}
	return 1;
}
int main(){
cl:
	init();
	while(you_win_or_no()){
		run_you();
		change();
		print();
		Sleep(75);
	}
	system("cls");
	if(win){
		printf("YOU ARE 666");
		Sleep(1000);
		system("cls");
	}else{
		printf("YOU ARE NOT 666");
		Sleep(1000);
		system("cls");
		goto cl;
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...