From d693267381bb182d17e38f690100ee7118716faf Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 4 Oct 2009 00:59:11 +0000 Subject: cleanup --- weasel.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/weasel.c b/weasel.c index 49d35dc..1b6b765 100644 --- a/weasel.c +++ b/weasel.c @@ -66,7 +66,7 @@ calculatefitness(char *genom, int length) int i, good; good = 0; - for (i = 0; i fitness <= (*b)->fitness ? 1 : -1); + if ((*a)->fitness < (*b)->fitness) + return 1; + if ((*a)->fitness > (*b)->fitness) + return -1; + + return 0; } void @@ -153,10 +158,10 @@ intercourse(int population, int mutationsrate) qsort(c, 3, sizeof(struct creature *), cmp); for (i = 0; i < c[2]->length; i++) { - if (random() % mutationsrate == 0) - c[2]->genom[i] = rndchar(); - else + if (random() % mutationsrate) c[2]->genom[i] = c[random() % 2]->genom[i]; + else + c[2]->genom[i] = rndchar(); } c[2]->genom[i] = '\0'; c[2]->fitness = calculatefitness(c[2]->genom, c[2]->length); -- cgit v1.2.3