Skip to content
Snippets Groups Projects
util.c 1.29 KiB
Newer Older
#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]);
  }
}