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 <bits/stdc++.h>
#include <windows.h>
#include <fstream>
#include <tchar.h>
#include <io.h>
#include <conio.h>
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);
}
//会更新的
05-11 20:53