xref: /original-bsd/games/robots/rnd_pos.c (revision 79cf7955)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that the above copyright notice and this paragraph are
7  * duplicated in all such forms and that any documentation,
8  * advertising materials, and other materials related to such
9  * distribution and use acknowledge that the software was developed
10  * by the University of California, Berkeley.  The name of the
11  * University may not be used to endorse or promote products derived
12  * from this software without specific prior written permission.
13  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16  */
17 
18 #ifndef lint
19 static char sccsid[] = "@(#)rnd_pos.c	5.3 (Berkeley) 06/18/88";
20 #endif /* not lint */
21 
22 # include	"robots.h"
23 
24 # define	IS_SAME(p,y,x)	((p).y != -1 && (p).y == y && (p).x == x)
25 
26 /*
27  * rnd_pos:
28  *	Pick a random, unoccupied position
29  */
30 COORD *
31 rnd_pos()
32 {
33 	static COORD	pos;
34 	static int	call = 0;
35 	register int	i = 0;
36 
37 	do {
38 		pos.y = rnd(Y_FIELDSIZE - 1) + 1;
39 		pos.x = rnd(X_FIELDSIZE - 1) + 1;
40 		refresh();
41 	} while (Field[pos.y][pos.x] != 0);
42 	call++;
43 	return &pos;
44 }
45 
46 rnd(range)
47 int	range;
48 {
49 	unsigned int	rand();
50 
51 	return rand() % range;
52 }
53