1.game.h

game.h

//以后会一直更新的呢.
/*2020.2.4 更新了文件输入输出模板 @Bill_liu2020
  加入了visual.h @bingogyz(orz) 代码:https://blog.csdn.net/weixin_39751211/article/details/88538034(代码先不放在介里了)
    加入了优化 @_Time_Limit_Error_(orz,Ost)
    
   upd:@Bill_liu2020 看一下https://blog.csdn.net/xyqqwer/article/details/83471973吧
*/
    /*
    Name: game.h
    Copyright: MG.ltd
    Author: yuzijiangorz
    Date: 04/01/20 13:54
    Description: about games
*/
//关于优化
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
//define
#define INFO_BUFFER_SIZE (MAX_COMPUTERNAME_LENGTH + 1)
//上下左右键的ASCII码值
#define UPK 72
#define DOWNK 80
#define LEFTK 75
#define RIGHTK 77
//随机
inline unsigned int rnd(const unsigned int& n)
{
    srand(int(time(NULL)));
    static unsigned int seed=0,c1=rand()%1000,c2=rand()%4566,c3=rand()%1029;

    if (seed==0)seed=(UINT)::GetTickCount();

    seed=(seed*c1+c2)%c3;
    
    return seed*n/c3;
}

// __int128 I/O
inline __int128 scan(){//in
    __int128 x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}

inline void print(__int128 x){//out
    if(x<0){
        putchar('-');
        x=-x;
    }
    if(x>9)
        print(x/10);
    putchar(x%10+'0');
}
//about out
void SlowDisplay(char *p)//缓慢输出
{
    while(*p!=0)
    {
        printf("%c",*p++); 
        Sleep(40);//可以被改变
    }
}
//about console
void color(int a) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}//改变颜色(1~256)
void settitle(char *s) {SetConsoleTitle(s);}//设置标题
void Getcomputername(void)//得到本机的名字
{
    CHAR infoBuf[INFO_BUFFER_SIZE];
    DWORD bufCharCount = INFO_BUFFER_SIZE;
    // Get and display the name of the computer.
    if( GetComputerName( infoBuf, &bufCharCount ) ) {
        _tprintf( "The NetBIOS name of the local computer is %s \n", infoBuf );
    }
    else {
        _tprintf( "Get NetBIOS name of the local computer failed with error %lu \n", GetLastError() );
    }
}
//about file and folder
int createf(char *f)//创建文件夹 
{   
    int status;
    status=mkdir(f);
    if(status==-1)
    {
        cout<<"\a"; 
        MessageBox(NULL,"Error:create folder failed!","error",MB_ICONERROR);
        return -1;
    } 
    return status;
}
bool fie(char *l)//判断文件是否存在
{
    if(access(l,0)!=-1) return true;
    else return false;
}
void HideCursor()//隐藏cmd光标
{
    CONSOLE_CURSOR_INFO cursor;    
    cursor.bVisible = FALSE;    
    cursor.dwSize = sizeof(cursor);    
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);    
    SetConsoleCursorInfo(handle, &cursor);
}
//会更新的

你可能感兴趣的:(1.game.h)