34 #if !defined(_MSC_VER) 40 void fopen_s(FILE** stream,
const char* name,
const char* fmt){
41 *stream = fopen(name, fmt);
54 gettimeofday(&now, NULL);
55 return now.tv_usec/1000;
92 std::string s =
"Error";
95 case GeneratorType::Warnsdorff: s =
"Warnsd";
break;
96 case GeneratorType::TakefujiLee: s =
"Neural";
break;
97 case GeneratorType::DivideAndConquer: s =
"Divide";
break;
98 case GeneratorType::ConcentricBraid: s =
"Braid";
break;
99 case GeneratorType::FourCover: s =
"Cover4";
break;
100 case GeneratorType::Unknown: s =
"Unknown";
break;
104 case CycleType::Tour: s +=
"Tour";
break;
105 case CycleType::TourFromTourney: s +=
"Join";
break;
106 case CycleType::Tourney: s +=
"Trny";
break;
110 if(w > 0)s += std::to_string(w);
127 const UINT intpart = (
UINT)std::floor(x);
128 const float fracpart = x - intpart;
131 s = std::to_string(intpart);
134 const UINT intfracpart = (
UINT)std::round(fracpart*10.0f);
135 s = std::to_string(intpart) +
"." + std::to_string(intfracpart);
149 void HSVtoRGB(
float h,
float s,
float v,
float rgb[3]){
152 const float f = 6.0f*h - i;
153 const float p = v*(1.0f - s);
154 const float q = v*(1.0f - s*f);
155 const float t = v*(1.0f - s*(1.0f - f));
160 case 0: rgb[0] = v; rgb[1] = t; rgb[2] = p;
break;
161 case 1: rgb[0] = q; rgb[1] = v; rgb[2] = p;
break;
162 case 2: rgb[0] = p; rgb[1] = v; rgb[2] = t;
break;
163 case 3: rgb[0] = p; rgb[1] = q; rgb[2] = v;
break;
164 case 4: rgb[0] = t; rgb[1] = p; rgb[2] = v;
break;
165 case 5: rgb[0] = v; rgb[1] = p; rgb[2] = q;
break;
Defines, enumerated types, and typedefs.
std::pair< int, int > MoveDelta
Move delta for a knight's move.
Header for helper functions.
std::string NumString(float x)
Make string from number.
unsigned int UINT
Abbreviation for unsigned integer.
GeneratorType
Generator type.
GeneratorType m_eGenerator
Generator type.
Header for the graph CGraph and its vertices CVertex and edges CEdge.
MoveDeltas g_vecDeltas
Move deltas for all possible knight's moves.
void fopen_s(FILE **stream, const char *name, const char *fmt)
fopen_s for *NIX.
Header for the pseudo-random number generator CRandom.
Header for the chessboard CBoard.
CycleType m_eCycle
Cycle type.
std::vector< MoveDelta > MoveDeltas
Move deltas for knight's moves.
void HSVtoRGB(float h, float s, float v, float rgb[3])
HSV to RGB color.
std::string MakeFileNameBase(const CTourneyDesc &t, int w)
Make file name base.
UINT timeGetTime()
Something a little bit like timeGetTime for *NIX.
bool m_bObfuscate
Whether to obfuscate.