|
|
1.1 root 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: * @(#)monop.h 5.4 (Berkeley) 6/18/88
18: */
19:
20: # include <stdio.h>
21:
22: # define reg register
23: # define shrt char
24: # define bool char
25: # define unsgn unsigned
26:
27: # define TRUE (1)
28: # define FALSE (0)
29:
30: # define N_MON 8 /* number of monopolies */
31: # define N_PROP 22 /* number of normal property squares */
32: # define N_RR 4 /* number of railroads */
33: # define N_UTIL 2 /* number of utilities */
34: # define N_SQRS 40 /* number of squares on board */
35: # define MAX_PL 9 /* maximum number of players */
36: # define MAX_PRP (N_PROP+N_RR+N_UTIL) /* max # ownable property */
37:
38: /* square type numbers */
39: # define PRPTY 0 /* normal property */
40: # define RR 1 /* railroad */
41: # define UTIL 2 /* water works - electric co */
42: # define SAFE 3 /* safe spot */
43: # define CC 4 /* community chest */
44: # define CHANCE 5 /* chance (surprise!!!) */
45: # define INC_TAX 6 /* Income tax */
46: # define GOTO_J 7 /* Go To Jail! */
47: # define LUX_TAX 8 /* Luxury tax */
48: # define IN_JAIL 9 /* In jail */
49:
50: # define JAIL 40 /* JAIL square number */
51:
52: # define lucky(str) printf("%s%s\n",str,lucky_mes[roll(1,num_luck)-1])
53: # define printline() printf("------------------------------\n")
54: # define sqnum(sqp) (sqp - board)
55: # define swap(A1,A2) if ((A1) != (A2)) { \
56: (A1) ^= (A2); \
57: (A2) ^= (A1); \
58: (A1) ^= (A2); \
59: }
60:
61: struct sqr_st { /* structure for square */
62: char *name; /* place name */
63: shrt owner; /* owner number */
64: shrt type; /* place type */
65: struct prp_st *desc; /* description struct */
66: int cost; /* cost */
67: };
68:
69: typedef struct sqr_st SQUARE;
70:
71: struct mon_st { /* monopoly description structure */
72: char *name; /* monop. name (color) */
73: shrt owner; /* owner of monopoly */
74: shrt num_in; /* # in monopoly */
75: shrt num_own; /* # owned (-1: not poss. monop)*/
76: shrt h_cost; /* price of houses */
77: char *not_m; /* name if not monopoly */
78: char *mon_n; /* name if a monopoly */
79: char sqnums[3]; /* Square numbers (used to init)*/
80: SQUARE *sq[3]; /* list of squares in monop */
81: };
82:
83: typedef struct mon_st MON;
84:
85: /*
86: * This struct describes a property. For railroads and utilities, only
87: * the "morg" member is used.
88: */
89: struct prp_st { /* property description structure */
90: bool morg; /* set if mortgaged */
91: bool monop; /* set if monopoly */
92: shrt square; /* square description */
93: shrt houses; /* number of houses */
94: MON *mon_desc; /* name of color */
95: int rent[6]; /* rents */
96: };
97:
98: struct own_st { /* element in list owned things */
99: SQUARE *sqr; /* pointer to square */
100: struct own_st *next; /* next in list */
101: };
102:
103: typedef struct own_st OWN;
104:
105: struct plr_st { /* player description structure */
106: char *name; /* owner name */
107: shrt num_gojf; /* # of get-out-of-jail-free's */
108: shrt num_rr; /* # of railroads owned */
109: shrt num_util; /* # of water works/elec. co. */
110: shrt loc; /* location on board */
111: shrt in_jail; /* count of turns in jail */
112: int money; /* amount of money */
113: OWN *own_list; /* start of propery list */
114: };
115:
116: typedef struct plr_st PLAY;
117: typedef struct prp_st PROP;
118: typedef struct prp_st RR_S;
119: typedef struct prp_st UTIL_S;
120:
121: int cc(), chance(), lux_tax(), goto_jail(), inc_tax();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.