From 4cea6652cb127b78e01aaf27cb69f8a54d97cb47 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 10 Jun 2016 18:15:43 +0200 Subject: Back to random(), compile at Lnx --- weasel.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/weasel.c b/weasel.c index 22f9bcb..06a9f7f 100644 --- a/weasel.c +++ b/weasel.c @@ -58,6 +58,7 @@ struct creature { int locked; } *cp, **generation; +#if __openbsd__ int ncpu(void) { @@ -73,11 +74,12 @@ ncpu(void) return n; } +#endif static inline char rndchar() { - return alphabet[arc4random() % alphalen]; + return alphabet[random() % alphalen]; } float @@ -157,7 +159,7 @@ Creature * pickrandom() { do - cp = generation[arc4random() % population]; + cp = generation[random() % population]; while (cp->locked); cp->locked = 1; @@ -194,8 +196,8 @@ intercourse() qsort(c, 3, sizeof(Creature *), cmp); for (i = 0; i < c[2]->length; i++) { - if (arc4random() % mutationrate) - c[2]->genom[i] = c[arc4random() % 2]->genom[i]; + if (random() % mutationrate) + c[2]->genom[i] = c[random() % 2]->genom[i]; else c[2]->genom[i] = rndchar(); } @@ -213,7 +215,7 @@ intercourse() pthread_mutex_lock(&gen); ++ngeneration; pthread_mutex_unlock(&gen); - + usleep(100); // REMOVE to speed up } pthread_exit(NULL); @@ -262,7 +264,11 @@ main(int argc, char **argv) int display = 1; alphabet = defalpha; +#if __openbsd__ nthreads = ncpu(); +#else + nthreads = 1; +#endif while ((c = getopt(argc, argv, "a:m:np:sS:t:")) != -1) switch (c) { @@ -302,6 +308,7 @@ main(int argc, char **argv) alphalen = strlen(alphabet); initscr(); + srandom(time(NULL)); initpopulation(strlen(aim)); pthread_mutex_init(&mutexsum, NULL); -- cgit v1.2.3