专栏文章
狂野飙猫
科技·工程参与者 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 条评论,欢迎与作者交流。
正在加载评论...