⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 random.cpp

📁 骨骼动画....把魔兽模型解出的代码..
💻 CPP
字号:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "Random.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
RANDOM Random;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
RANDOM::RANDOM()
{
	SetSeed();
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
RANDOM::~RANDOM()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Sets a new random seed
//+-----------------------------------------------------------------------------
VOID RANDOM::SetSeed()
{
	Seed = static_cast<UINT>(std::time(NULL));
	std::srand(Seed);
}


//+-----------------------------------------------------------------------------
//| Sets a new random seed
//+-----------------------------------------------------------------------------
VOID RANDOM::SetSeed(UINT NewSeed)
{
	Seed = NewSeed;
	std::srand(Seed);
}


//+-----------------------------------------------------------------------------
//| Returns the current random seed
//+-----------------------------------------------------------------------------
UINT RANDOM::GetSeed() CONST
{
	return Seed;
}


//+-----------------------------------------------------------------------------
//| Generates a random boolean
//+-----------------------------------------------------------------------------
BOOL RANDOM::Bool() CONST
{
	return (std::rand() % 2) == 0;
}


//+-----------------------------------------------------------------------------
//| Generates a random integer
//+-----------------------------------------------------------------------------
INT RANDOM::Int(INT Min, INT Max) CONST
{
	if(Max <= Min) return Min;

	return Min + std::rand() % (Max - Min + 1);
}


//+-----------------------------------------------------------------------------
//| Generates a random floating point number
//+-----------------------------------------------------------------------------
FLOAT RANDOM::Float(FLOAT Min, FLOAT Max) CONST
{
	if(Max <= Min) return Min;

	return Min + (Max - Min) * (static_cast<FLOAT>(std::rand()) / static_cast<FLOAT>(RAND_MAX + 1));
}


//+-----------------------------------------------------------------------------
//| Generates a random double precision floating point number
//+-----------------------------------------------------------------------------
DOUBLE RANDOM::Double(DOUBLE Min, DOUBLE Max) CONST
{
	if(Max <= Min) return Min;

	return Min + (Max - Min) * (static_cast<DOUBLE>(std::rand()) / static_cast<DOUBLE>(RAND_MAX + 1));
}


//+-----------------------------------------------------------------------------
//| Generates a random digit
//+-----------------------------------------------------------------------------
CHAR RANDOM::Digit() CONST
{
	return static_cast<CHAR>(Int('0', '9'));
}


//+-----------------------------------------------------------------------------
//| Generates a random letter
//+-----------------------------------------------------------------------------
CHAR RANDOM::Letter() CONST
{
	return Bool() ? UpperCaseLetter() : LowerCaseLetter();
}


//+-----------------------------------------------------------------------------
//| Generates a random lowercase letter
//+-----------------------------------------------------------------------------
CHAR RANDOM::LowerCaseLetter() CONST
{
	return static_cast<CHAR>(Int('a', 'z'));
}


//+-----------------------------------------------------------------------------
//| Generates a random uppercase letter
//+-----------------------------------------------------------------------------
CHAR RANDOM::UpperCaseLetter() CONST
{
	return static_cast<CHAR>(Int('A', 'Z'));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -