This is spray.c in view mode; [Download] [Up]
#include "../H/spray.h"
sprayinit(slist,size,seed)
struct slist *slist;
float seed;
{
int i;
slist->size = size;
slist->current = size;
srrand(seed);
for(i=0; i<size; i++) {
slist->array[i] = i;
}
}
spray(slist)
struct slist *slist;
{
int n,i,j;
float rrand();
n = ((rrand() + 1.)/2.) * (slist->current -1) +.5 ;
j = slist->array[n];
for(i=n; i<(slist->current-1); i++)
slist->array[i] = slist->array[i+1];
slist->current--;
if(!slist->current) {
slist->current = slist->size;
for(i=0; i<slist->size; i++) {
slist->array[i] = i;
}
}
return(j);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.