-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrandom.cpp
More file actions
69 lines (48 loc) · 1.44 KB
/
random.cpp
File metadata and controls
69 lines (48 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "random.h"
Random_Gen::Random_Gen()
{
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
seedin.open("seed.txt");
if (seedin.fail()) {
time (&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer,sizeof(buffer),"%A, %B %d, %Y %H:%M:%S",timeinfo);
std::cout<<"No seed file found: seeding from time phrase "<<buffer<<std::endl;
phrtsd(buffer, &seed1, &seed2);
}
else {
seedin>>seed1>>seed2;
seedin.close();
}
setall(seed1, seed2);
}
Random_Gen::Random_Gen(std::string seed_string)
{
int i, stop, stop_seed;
time_t rawtime;
struct tm * timeinfo;
char tbuffer[100], buffer[300];
time (&rawtime);
timeinfo = localtime(&rawtime);
strftime(tbuffer,sizeof(tbuffer),"%A, %B %d, %Y %H:%M:%S",timeinfo);
if (sizeof(buffer)<100) stop=sizeof(buffer);
else stop=100;
if (seed_string.length() >100) stop_seed=100;
else stop_seed=seed_string.length();
for(i=0; i<stop_seed; i++)
buffer[i]=seed_string[i];
for(i=0; i<stop; i++)
buffer[i+stop_seed]=tbuffer[i];
buffer[stop]='\0';
phrtsd(buffer, &seed1, &seed2);
setall(seed1, seed2);
}
Random_Gen::~Random_Gen()
{
seedout.open("./seed.txt");
getsd(&seed1, &seed2);
seedout<<seed1<<"\t"<<seed2<<std::endl;
seedout.close();
}