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 <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);
}
//會更新的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM