专栏文章

狂野飙猫

科技·工程参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@minu42y2
此快照首次捕获于
2025/12/02 08:23
3 个月前
此快照最后确认于
2025/12/02 08:23
3 个月前
查看原文

狂野飙猫

CPP

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
//#include<thread>

#define ce cout<<endl;
#define cp system("cls");
#define sl Sleep(1000);
#define cutcl ;Sleep(15);cout
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
POINT p;//CSDN抄的
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);//CSDN抄的
HWND h=GetForegroundWindow();//CSDN抄的
CONSOLE_FONT_INFO consoleCurrentFont;//CSDN抄的
using namespace std;
struct chr{
	char c;
	short f,b;
};
int fmap[237][61];
chr bp[237][61]; 
int maosx,maosy,myx=235,myy=58;
int imap[237][61];

int catx=118,caty=29,catxspd=0,catyspd=0,catprevx,catprevy;
int catmot=1,catstat=0;

/*
 ^ ^     /
(OwO) __-
 //==\\
原来字符猫可以这么可爱吗? 
*/
void catrunleft(int tm){
	bp[catx][caty].c=')';
	bp[catx-1][caty].c='O';
	bp[catx-2][caty].c='w';
	bp[catx-3][caty].c='O';
	bp[catx-4][caty].c='(';
	bp[catx+2][caty].c='_';
	bp[catx+3][caty].c='_';
	bp[catx+4][caty].c='-';
	
	bp[catx-1][caty-1].c='^';
	bp[catx-3][caty-1].c='^';
	bp[catx+5][caty-1].c='/';
	bp[catx][caty+1].c='=';
	bp[catx-1][caty+1].c='=';
	if(tm==1||tm==2){
		bp[catx+2][caty+1].c='\\';
		bp[catx+1][caty+1].c='\\';
		bp[catx-2][caty+1].c='/';
		bp[catx-3][caty+1].c='/';
	}
	if(tm==3||tm==4){
		bp[catx-2][caty+1].c='/';
		bp[catx-1][caty+1].c='\\';
		bp[catx+2][caty+1].c='/';
		bp[catx+3][caty+1].c='\\';
		bp[catx+1][caty+1].c='=';
	}
	if(tm==5||tm==6){
		bp[catx+2][caty+1].c='/';
		bp[catx+1][caty+1].c='/';
		bp[catx-2][caty+1].c='\\';
		bp[catx-3][caty+1].c='\\';
	}
}
void catrunright(int tm){
	bp[catx][caty].c='(';
	bp[catx+1][caty].c='O';
	bp[catx+2][caty].c='w';
	bp[catx+3][caty].c='O';
	bp[catx+4][caty].c=')';
	bp[catx-2][caty].c='_';
	bp[catx-3][caty].c='_';
	bp[catx-4][caty].c='-';
	
	bp[catx+1][caty-1].c='^';
	bp[catx+3][caty-1].c='^';
	bp[catx-5][caty-1].c='\\';
	
	bp[catx][caty+1].c='=';
	bp[catx+1][caty+1].c='=';
	if(tm==1||tm==2){
		bp[catx-2][caty+1].c='/';
		bp[catx-1][caty+1].c='/';
		bp[catx+2][caty+1].c='\\';
		bp[catx+3][caty+1].c='\\';
	}
	if(tm==3||tm==4){
		bp[catx+2][caty+1].c='\\';
		bp[catx+1][caty+1].c='/';
		bp[catx-2][caty+1].c='\\';
		bp[catx-3][caty+1].c='/';
		bp[catx-1][caty+1].c='=';
	}
	if(tm==5||tm==6){
		bp[catx-2][caty+1].c='\\';
		bp[catx-1][caty+1].c='\\';
		bp[catx+2][caty+1].c='/';
		bp[catx+3][caty+1].c='/';
	}
}
void catmirl(){
	bp[catprevx][catprevy].c='=';
	bp[catprevx-1][catprevy].c='=';
	bp[catprevx-2][catprevy].c='=';
	bp[catprevx-3][catprevy].c='=';
	bp[catprevx-4][catprevy].c='=';
	bp[catprevx+2][catprevy].c='=';
	bp[catprevx+3][catprevy].c='=';
	bp[catprevx+4][catprevy].c='=';
	
	bp[catprevx-1][catprevy-1].c='=';
	bp[catprevx-3][catprevy-1].c='=';
	bp[catprevx+5][catprevy-1].c='=';
	bp[catprevx][catprevy+1].c='=';
	bp[catprevx-1][catprevy+1].c='=';
	bp[catprevx+2][catprevy+1].c='=';
	bp[catprevx+1][catprevy+1].c='=';
	bp[catprevx-2][catprevy+1].c='=';
	bp[catprevx-3][catprevy+1].c='=';
	
}
void catmirr(){
	bp[catprevx][catprevy].c='=';
	bp[catprevx+1][catprevy].c='=';
	bp[catprevx+2][catprevy].c='=';
	bp[catprevx+3][catprevy].c='=';
	bp[catprevx+4][catprevy].c='=';
	bp[catprevx-2][catprevy].c='=';
	bp[catprevx-3][catprevy].c='=';
	bp[catprevx-4][catprevy].c='=';
	
	bp[catprevx+1][catprevy-1].c='=';
	bp[catprevx+3][catprevy-1].c='=';
	bp[catprevx-5][catprevy-1].c='=';
	
	bp[catprevx][catprevy+1].c='=';
	bp[catprevx+1][catprevy+1].c='=';
		bp[catprevx-2][catprevy+1].c='=';
		bp[catprevx-1][catprevy+1].c='=';
		bp[catprevx+2][catprevy+1].c='=';
		bp[catprevx+3][catprevy+1].c='=';
}
void gotoxy(short x, short y) {
	COORD pos = {x,y};
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
	SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
void pchr(char s,int color,int back_color){
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 	SetConsoleTextAttribute(handle, BACKGROUND_INTENSITY | back_color*16 |FOREGROUND_INTENSITY | color);
	cout<<s;
 	SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}
void pch(char s,int color,int back_color){
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 	//SetConsoleTextAttribute(handle,FOREGROUND_INTENSITY | color);
	cout<<s;
 	//SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}
void pmap(){
	for(int j=0;j<59;j++){
		gotoxy(0,j);
		for(int i=0;i<237;i++) {
			pch(bp[i][j].c,bp[i][j].f,bp[i][j].b);
			bp[i][j].c=' ';
			bp[i][j].f=0;
		}
		cout<<endl;
	}
}
int exam(){
	POINT p;
	while(1){
		pmap();
		GetCursorPos(&p);
		ScreenToClient(h,&p);               //获取鼠标在窗口上的位置
		GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont); //获取字体信息
		maosx=p.x/=consoleCurrentFont.dwFontSize.X;
		maosy=p.y/=consoleCurrentFont.dwFontSize.Y;
		bp[maosx][maosy].c='+';
		bp[maosx][maosy-1].c='A';
		bp[maosx][maosy+1].c='v';
		bp[maosx+2][maosy].c=')';
		bp[maosx-2][maosy].c='(';
		
		fmap[myx][myy]=0;
    if(catx>maosx){
    	if(catxspd<=-4) catmirl();
    	catrunleft(catmot);
    	catxspd--;
    	if(catxspd>0) catxspd--;
		}
    else if(catx<maosx){
    	if(catxspd>=4) catmirr();
    	catrunright(catmot);
    	catxspd++;
    	if(catxspd<0) catxspd++;
		}
		if(caty>maosy){
    	catyspd--;
    	if(catyspd>0) catyspd--;
		}
    else if(caty<maosy){
    	catyspd++;
    	if(catyspd<0) catyspd++;
		}
		catprevx=catx;
		catprevy=caty;
		
		catx+=catxspd;
		caty+=catyspd/2;
		if(catxspd>4) catxspd=4;
		if(catyspd>8) catyspd=8;
		if(catxspd<-4) catxspd=-4;
		if(catyspd<-8) catyspd=-8;
		if(catx<5){
			catx=5;
			catxspd=0;
		}
		if(catx>232){
			catx=232;
			catxspd=0;
		}
		if(caty<2){
			caty=5;
			catyspd=0;
		}
		if(caty>57){
			caty=57;
			catyspd=0;
		}
		
		catmot++;
		if(sqrt((double)catxspd*(double)catyspd)>=5) catmot++;
		if(catmot==7||catmot==8) catmot-=6;
		
		Sleep(10);
	}
}
int main(){
	/*spl[1]=1;
	mhlt=100;
	mdmg=10;
	mreg=2;
	mdfd=0;*/
  ios::sync_with_stdio(0);
  cin.tie(0); cout.tie(0);
	exam();
	return 0;
}

评论

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

正在加载评论...