锻炼手速小游戏

//By 小跳蛙
#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)
using namespace std;
int N=15,Numk=50,Numl=5,Numd=100,Nan=40,Hp=10,Bebc=15,Bebh=16,Bebb=10,squ=3;
struct node
{
   
    int x,y,vf,bv;
    inline void init() {
   x=rand()%N+1,y=rand()%N+1,bv=rand()%3+1;}
    inline void move() {
   x++;if(x>N) init(),x=1;}
}k[10005],l[10005],d[10005];
int x,y,hp,score,mp[25][25],udf,numc,numh,numb,bulc,bulh,bulb,lanf;
inline void add(int &x,int y) {
   x+=y,x=max(x,1),x=min(x,N);}
void color(int a) {
   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}
inline int read()
{
   
    int r=0;char c=getchar();
    while(c>'9'||c<'0') c=getchar();
    while(c>='0'&&c<='9') (r*=10)+=c-'0',c=getchar();
    return r;
}
inline void print(int x,int y,string s)
{
   
    HANDLE hOut;COORD pos;
    hOut=GetStdHandle(STD_OUTPUT_HANDLE),pos.X=y,pos.Y=x;
    SetConsoleCursorPosition(hOut,pos),cout<<s;
}
inline char check_press(int x)
{
   
    Sleep(100);
    for(int i=1;i<=10;i++) {
   if(KEY_DOWN(x)) return 1;Sleep(10);}
    return 0;
}
inline void set_windows(int x1,int y1,int x2,int y2)
{
   
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);SMALL_RECT rc;
    rc.Left=x1,rc.Top=y1,rc.Right=x2,rc.Bottom=y2;
    SetConsoleWindowInfo(hOut, TRUE, &rc);
}
inline void disap_mouse()
{
   
    ShowCursor(false);
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cci;
    GetConsoleCursorInfo(hOut,&cci);
    cci.bVisible=false;
    SetConsoleCursorInfo(hOut,&cci);
}
inline char check_die()
{
   
    for(int i=1;i<=Numk;i++) if(k[i].x==x&&k[i].y==y) return k[i].init(),k[i].x=1,0;
    return 1;
}
inline char check_luck()
{
   
    for(int i=1;i<=Numl;i++)
        if(l[i].x==x&&l[i].y==y)
        {
   
            l[i].init(),l[i].x=1;
            numc+=(rand()%10+5)*bulc;
            numh+=(rand()%5+5)*bulh;
            numb+=(rand()%5+5)*bulb;
            return 0;
        }
    return 1;
}
inline char check_dowm()
{
   
    for(int i=1;i<=Numd;i++)
        if(d[i].x==x&&d[i].y==y)
        {
   
            d[i].init(),d[i].x=1;
            numc+=(rand()%10+5)*bulc;
            numh+=(rand()%5+5)*bulh;
            numb+=(rand()%5+5)*bulb;
            return 0;
        }
    return 1;
}
inline void move_thi()
{
   
    for(int i=1;i<=Numk;i++) if(k[i].vf==0) k[i].move();
    for(int i=1;i<=Numl;i++) if(l[i].vf==0) l[i].move();
    for(int i=1;i<=Numd;i++) if(d[i].vf==0) d[i].move();
}
inline char move_peo()
{
   
    char c=0;
    if(KEY_DOWN(87)&&!udf) add(x,-1),c=1;
    if(KEY_DOWN(38)&&!udf) add(x,-1),c=1;
    if(KEY_DOWN(104)&&!udf) add(x,-1),c=1;
    if(KEY_DOWN(87)||KEY_DOWN(38)||KEY_DOWN(104)) color(112),print(11,N+5,"↑"),color(7);else print(11,N+5,"↑");
    if(KEY_DOWN(83)&&!udf) add(x,1),c=1;
    if(KEY_DOWN(40)&&!udf) add(x,1),c=1;
    if(KEY_DOWN(101)&&!udf) add(x,1),c=1;
    if(KEY_DOWN(83)||KEY_DOWN(40)||KEY_DOWN(101)) color(112),print(15,N+5,"↓"),color(7);else print(15,N+5,"↓");
    if(KEY_DOWN(65)) add(y,-1),c=1;
    if(KEY_DOWN(37)) add(y,-1),c=1;
    if(KEY_DOWN(100)) add(y,-1),c=1;
    if(KEY_DOWN(65)||KEY_DOWN(37)||KEY_DOWN(100)) color(112),print(13,N+3,"←"),color(7);else print(13,N+3,"←");
    if(KEY_DOWN(68)) add(y,1),c=1;
    if(KEY_DOWN(39)) add(y,1),c=1;
    if(KEY_DOWN(102)) add(y,1),c=1;
    if(KEY_DOWN(68)||KEY_DOWN(39)||KEY_DOWN(102)) color(112),print(13,N+7,"→"),color(7);else print(13,N+7,"→");
    return c;
}
inline void die()
{
   
    system("cls"),print(0,0," ");
    if(lanf==1)
    {
   
        puts("ZDT : HaHaHaaaaa! YOU DIED!!!\n"),Sleep(1000);
        printf("YOU SCORE IS:%d\n\n",score),Sleep(1000);
    }
    if(lanf==0)
    {
   
        puts("ZDT:你终于知道 死 这个字怎么写了!!!\n"),Sleep(1000);
        printf("你的分数是:%d\n\n",score),Sleep(1000);
    }
    if(lanf==1) puts("TRY AGAIN?\n");
    if(lanf==0) puts("再来一局?\n");
}
inline void init()
{
   
    system("cls"),srand(time(0)),printf(" ");
    for(int i=1;i<=N;i++) printf("~");
    puts("");
    for(int i=1;i<=N;i++)
    {
   
        printf("|");
        for(int i=1;i<=N;i++) printf(" ");
        puts("|");
    }
    printf(" ");
    for(int i=1;i<=N;i++) printf("~");
    puts(""),x=N,y=N/2,hp=Hp,score=0,numc=Bebc*bulc,numh=Bebh*bulh,numb=Bebb*bulb;
    for(int i=1;i<=Numk;i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值