robots.h revision 1.1
1/*	$NetBSD: robots.h,v 1.5 1995/04/24 12:24:54 cgd Exp $	*/
2
3/*
4 * Copyright (c) 1980, 1993
5 *	The Regents of the University of California.  All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 *    must display the following acknowledgement:
17 *	This product includes software developed by the University of
18 *	California, Berkeley and its contributors.
19 * 4. Neither the name of the University nor the names of its contributors
20 *    may be used to endorse or promote products derived from this software
21 *    without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 *	@(#)robots.h	8.1 (Berkeley) 5/31/93
36 */
37
38# include	<curses.h>
39# include	<setjmp.h>
40# include	<string.h>
41
42/*
43 * miscellaneous constants
44 */
45
46# define	Y_FIELDSIZE	23
47# define	X_FIELDSIZE	60
48# define	Y_SIZE		24
49# define	X_SIZE		80
50# define	MAXLEVELS	4
51# define	MAXROBOTS	(MAXLEVELS * 10)
52# define	ROB_SCORE	10
53# define	S_BONUS		(60 * ROB_SCORE)
54# define	Y_SCORE		21
55# define	X_SCORE		(X_FIELDSIZE + 9)
56# define	Y_PROMPT	(Y_FIELDSIZE - 1)
57# define	X_PROMPT	(X_FIELDSIZE + 2)
58# define	MAXSCORES	(Y_SIZE - 2)
59# define	MAXNAME		16
60# define	MS_NAME		"Ten"
61
62/*
63 * characters on screen
64 */
65
66# define	ROBOT	'+'
67# define	HEAP	'*'
68# define	PLAYER	'@'
69
70/*
71 * type definitions
72 */
73
74typedef struct {
75	int	y, x;
76} COORD;
77
78/*
79 * global variables
80 */
81
82extern bool	Dead, Full_clear, Jump, Newscore, Real_time, Running,
83		Teleport, Waiting, Was_bonus;
84
85#ifdef	FANCY
86extern bool	Pattern_roll, Stand_still;
87#endif
88
89extern char	Cnt_move, Field[Y_FIELDSIZE][X_FIELDSIZE], *Next_move,
90		*Move_list, Run_ch;
91
92extern int	Count, Level, Num_robots, Num_scores, Score,
93		Start_level, Wait_bonus;
94
95extern COORD	Max, Min, My_pos, Robots[];
96
97extern jmp_buf	End_move;
98
99/*
100 * functions types
101 */
102
103int	cmp_sc();
104void	move_robots();
105
106COORD	*rnd_pos();
107
108
109
110
111