Newer
Older
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "util.h"
int randrange(int min, int max) {
int range = max - min + 1;
return (rand() % range) + min;
}
int randchance(double prob) {
int resolution = RAND_MAX;
return (rand() % resolution) < (prob * resolution);
}
int sign(int x) {
if (x > 0) return 1;
if (x < 0) return -1;
return 0;
}
void parse_args(int argc, char *argv[], args_t *args) {
int i;
// Default parameter values
args->dbg = 0;
args->load = 0;
args->save = 0;
args->nummon = 10;
args->seed = time(NULL);
int valid = 1;
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "--save")) {
args->save = 1;
} else if (!strcmp(argv[i], "--load")) {
args->load = 1;
} else if (!strncmp(argv[i], "--seed", 6)) {
if (strlen(argv[i]) > 7) {
args->seed = atoi(argv[i] + 7);
} else {
valid = 0;
}
} else if (!strncmp(argv[i], "--nummon", 8)) {
if (strlen(argv[i]) > 9) {
args->nummon = atoi(argv[i] + 9);
} else {
valid = 0;
}
} else if (!strcmp(argv[i], "--dbg")) {
args->dbg = 1;
} else {
valid = 0;
}
}
if (!valid) {
fprintf(stderr, "Usage: %s [--load --save --dbg --seed=<seed> --nummon=<number of monsters>]\n", argv[0]);
}
}