/* File: rand5.c

   Play with a random number generator.
   Fifth try.  Using time to set the seed.
   Also, generate numbers between 1 and 6.
   And, put code in functions.
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "genlib.h"
#include "simpio.h"

#define LOW 1
#define HIGH 6

void SetRandomSeed(void) ;
int GetRandomNumber(void) ; 

void SetRandomSeed(void) {
   int time_seed ;

   /* Use the time function to set the seed. */
   time_seed = (int) time(0) ;
   srand(time_seed) ;
}

int GetRandomNumber(void) {
   int r ;

   /* Call rand() to get a large random number. */
   r = rand() ;

   /* Scale the random number within range. */
   r = r % (HIGH - LOW + 1) + LOW ;

   return(r) ;
}

main() {
   int i, j, go_ahead ;
   int r1, r2 ;

   while (TRUE) {
      printf("\nEnter 1 to continue: ") ;
      go_ahead = GetInteger() ;
      if (go_ahead != 1) break ;

      SetRandomSeed() ;

      /* Print out 50 random numbers in a 10 x 5 grid */
      printf("Sum of two dice between %d and %d\n", LOW, HIGH) ;
      for (i = 0 ; i < 10 ; i++) {
	 for (j = 0 ; j < 5 ; j++) {
	    r1 = GetRandomNumber() ;
	    r2 = GetRandomNumber() ;
	    printf("%8d ", r1 + r2 ) ;
	 } 
         printf("\n") ;
      }
   }
}
