summaryrefslogtreecommitdiffstats
path: root/games/monop
diff options
context:
space:
mode:
Diffstat (limited to 'games/monop')
-rw-r--r--games/monop/Makefile26
-rw-r--r--games/monop/brd.dat78
-rw-r--r--games/monop/cards.c208
-rw-r--r--games/monop/cards.inp122
-rw-r--r--games/monop/deck.h48
-rw-r--r--games/monop/execute.c262
-rw-r--r--games/monop/getinp.c116
-rw-r--r--games/monop/houses.c269
-rw-r--r--games/monop/initdeck.c184
-rw-r--r--games/monop/jail.c127
-rw-r--r--games/monop/misc.c272
-rw-r--r--games/monop/mon.dat44
-rw-r--r--games/monop/monop.6188
-rw-r--r--games/monop/monop.c162
-rw-r--r--games/monop/monop.def123
-rw-r--r--games/monop/monop.ext57
-rw-r--r--games/monop/monop.h137
-rw-r--r--games/monop/morg.c209
-rw-r--r--games/monop/pathnames.h36
-rw-r--r--games/monop/print.c192
-rw-r--r--games/monop/prop.c211
-rw-r--r--games/monop/prop.dat58
-rw-r--r--games/monop/rent.c92
-rw-r--r--games/monop/roll.c74
-rw-r--r--games/monop/spec.c86
-rw-r--r--games/monop/trade.c306
26 files changed, 0 insertions, 3687 deletions
diff --git a/games/monop/Makefile b/games/monop/Makefile
deleted file mode 100644
index a1e8f2d..0000000
--- a/games/monop/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# @(#)Makefile 8.1 (Berkeley) 5/31/93
-
-PROG= monop
-SRCS= monop.c cards.c execute.c getinp.c houses.c jail.c misc.c morg.c \
- print.c prop.c rent.c roll.c spec.c trade.c
-MAN6= monop.6
-DPADD= ${LIBCOMPAT}
-LDADD= -lcompat
-HIDEGAME=hidegame
-CLEANFILES+=initdeck cards.pck
-
-all: ${PROG} ${MAN6}
-
-monop: cards.pck
-
-cards.pck: initdeck
- ./initdeck ${.CURDIR}/cards.inp
-
-initdeck: initdeck.c
- ${CC} ${CFLAGS} -o ${.TARGET} ${.CURDIR}/initdeck.c
-
-beforeinstall:
- install -c -o ${BINOWN} -g ${BINGRP} -m 444 cards.pck \
- ${DESTDIR}/usr/share/games
-
-.include <bsd.prog.mk>
diff --git a/games/monop/brd.dat b/games/monop/brd.dat
deleted file mode 100644
index ff8498d..0000000
--- a/games/monop/brd.dat
+++ /dev/null
@@ -1,78 +0,0 @@
-/*-
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)brd.dat 5.5 (Berkeley) 5/31/93
- */
-
-/* name (COLOR) owner type desc cost */
-
-{"=== GO ===", -1, SAFE, 0 },
-{"Mediterranean ave. (P)", -1, PRPTY, &prop[0], 60 },
-{"Community Chest i", -1, CC, },
-{"Baltic ave. (P)", -1, PRPTY, &prop[1], 60 },
-{"Income Tax", -1, INC_TAX, },
-{"Reading RR", -1, RR, &rr[0], 200 },
-{"Oriental ave. (L)", -1, PRPTY, &prop[2], 100 },
-{"Chance i", -1, CHANCE, },
-{"Vermont ave. (L)", -1, PRPTY, &prop[3], 100 },
-{"Connecticut ave. (L)", -1, PRPTY, &prop[4], 120 },
-{"Just Visiting", -1, SAFE, 0 },
-{"St. Charles pl. (V)", -1, PRPTY, &prop[5], 140 },
-{"Electric Co.", -1, UTIL, &util[0], 150 },
-{"States ave. (V)", -1, PRPTY, &prop[6], 140 },
-{"Virginia ave. (V)", -1, PRPTY, &prop[7], 160 },
-{"Pennsylvania RR", -1, RR, &rr[1], 200 },
-{"St. James pl. (O)", -1, PRPTY, &prop[8], 180 },
-{"Community Chest ii", -1, CC, },
-{"Tennessee ave. (O)", -1, PRPTY, &prop[9], 180 },
-{"New York ave. (O)", -1, PRPTY, &prop[10], 200 },
-{"Free Parking", -1, SAFE, 0 },
-{"Kentucky ave. (R)", -1, PRPTY, &prop[11], 220 },
-{"Chance ii", -1, CHANCE, },
-{"Indiana ave. (R)", -1, PRPTY, &prop[12], 220 },
-{"Illinois ave. (R)", -1, PRPTY, &prop[13], 240 },
-{"B&O RR", -1, RR, &rr[2], 200 },
-{"Atlantic ave. (Y)", -1, PRPTY, &prop[14], 260 },
-{"Ventnor ave. (Y)", -1, PRPTY, &prop[15], 260 },
-{"Water Works", -1, UTIL, &util[1], 150 },
-{"Marvin Gardens (Y)", -1, PRPTY, &prop[16], 280 },
-{"GO TO JAIL", -1, GOTO_J, },
-{"Pacific ave. (G)", -1, PRPTY, &prop[17], 300 },
-{"N. Carolina ave. (G)", -1, PRPTY, &prop[18], 300 },
-{"Community Chest iii", -1, CC, },
-{"Pennsylvania ave. (G)", -1, PRPTY, &prop[19], 320 },
-{"Short Line RR", -1, RR, &rr[3], 200 },
-{"Chance iii", -1, CHANCE, },
-{"Park place (D)", -1, PRPTY, &prop[20], 350 },
-{"Luxury Tax", -1, LUX_TAX, },
-{"Boardwalk (D)", -1, PRPTY, &prop[21], 400 },
-{"JAIL", -1, IN_JAIL, }
diff --git a/games/monop/cards.c b/games/monop/cards.c
deleted file mode 100644
index 7424820..0000000
--- a/games/monop/cards.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)cards.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-# include "pathnames.h"
-
-/*
- * These routine deal with the card decks
- */
-
-# define GOJF 'F' /* char for get-out-of-jail-free cards */
-
-# ifndef DEV
-static char *cardfile = _PATH_CARDS;
-# else
-static char *cardfile = "cards.pck";
-# endif
-
-static FILE *deckf;
-
-/*
- * This routine initializes the decks from the data file,
- * which it opens.
- */
-init_decks() {
-
- if ((deckf=fopen(cardfile, "r")) == NULL) {
-file_err:
- perror(cardfile);
- exit(1);
- }
- if (fread(deck, sizeof (DECK), 2, deckf) != 2)
- goto file_err;
- set_up(&CC_D);
- set_up(&CH_D);
-}
-/*
- * This routine sets up the offset pointers for the given deck.
- */
-set_up(dp)
-DECK *dp; {
-
- reg int r1, r2;
- int i;
-
- dp->offsets = (long *) calloc(sizeof (long), dp->num_cards);
- if (fread(dp->offsets, sizeof(long), dp->num_cards, deckf) != dp->num_cards) {
- perror(cardfile);
- exit(1);
- }
- dp->last_card = 0;
- dp->gojf_used = FALSE;
- for (i = 0; i < dp->num_cards; i++) {
- reg long temp;
-
- r1 = roll(1, dp->num_cards) - 1;
- r2 = roll(1, dp->num_cards) - 1;
- temp = dp->offsets[r2];
- dp->offsets[r2] = dp->offsets[r1];
- dp->offsets[r1] = temp;
- }
-}
-/*
- * This routine draws a card from the given deck
- */
-get_card(dp)
-DECK *dp; {
-
- reg char type_maj, type_min;
- reg int num;
- int i, per_h, per_H, num_h, num_H;
- OWN *op;
-
- do {
- fseek(deckf, dp->offsets[dp->last_card], 0);
- dp->last_card = ++(dp->last_card) % dp->num_cards;
- type_maj = getc(deckf);
- } while (dp->gojf_used && type_maj == GOJF);
- type_min = getc(deckf);
- num = getw(deckf);
- printmes();
- switch (type_maj) {
- case '+': /* get money */
- if (type_min == 'A') {
- for (i = 0; i < num_play; i++)
- if (i != player)
- play[i].money -= num;
- num = num * (num_play - 1);
- }
- cur_p->money += num;
- break;
- case '-': /* lose money */
- if (type_min == 'A') {
- for (i = 0; i < num_play; i++)
- if (i != player)
- play[i].money += num;
- num = num * (num_play - 1);
- }
- cur_p->money -= num;
- break;
- case 'M': /* move somewhere */
- switch (type_min) {
- case 'F': /* move forward */
- num -= cur_p->loc;
- if (num < 0)
- num += 40;
- break;
- case 'J': /* move to jail */
- goto_jail();
- return;
- case 'R': /* move to railroad */
- spec = TRUE;
- num = (int)((cur_p->loc + 5)/10)*10 + 5 - cur_p->loc;
- break;
- case 'U': /* move to utility */
- spec = TRUE;
- if (cur_p->loc >= 12 && cur_p->loc < 28)
- num = 28 - cur_p->loc;
- else {
- num = 12 - cur_p->loc;
- if (num < 0)
- num += 40;
- }
- break;
- case 'B':
- num = -num;
- break;
- }
- move(num);
- break;
- case 'T': /* tax */
- if (dp == &CC_D) {
- per_h = 40;
- per_H = 115;
- }
- else {
- per_h = 25;
- per_H = 100;
- }
- num_h = num_H = 0;
- for (op = cur_p->own_list; op; op = op->next)
- if (op->sqr->type == PRPTY)
- if (op->sqr->desc->houses == 5)
- ++num_H;
- else
- num_h += op->sqr->desc->houses;
- num = per_h * num_h + per_H * num_H;
- printf("You had %d Houses and %d Hotels, so that cost you $%d\n", num_h, num_H, num);
- if (num == 0)
- lucky("");
- else
- cur_p->money -= num;
- break;
- case GOJF: /* get-out-of-jail-free card */
- cur_p->num_gojf++;
- dp->gojf_used = TRUE;
- break;
- }
- spec = FALSE;
-}
-/*
- * This routine prints out the message on the card
- */
-printmes() {
-
- reg char c;
-
- printline();
- fflush(stdout);
- while ((c = getc(deckf)) != '\0')
- putchar(c);
- printline();
- fflush(stdout);
-}
diff --git a/games/monop/cards.inp b/games/monop/cards.inp
deleted file mode 100644
index 1867e87..0000000
--- a/games/monop/cards.inp
+++ /dev/null
@@ -1,122 +0,0 @@
-FF
->> GET OUT OF JAIL FREE <<
-Keep this card until needed or sold
-%%
-++25
-Receive for Services $25.
-%%
-++200
-Bank Error in Your Favor.
-Collect $200.
-%%
-++20
-Income Tax Refund.
-Collect $20.
-%%
---100
-Pay Hospital $100
-%%
-++100
-Life Insurance Matures.
-Collect $100
-%%
-++45
-From sale of Stock You get $45.
-%%
-TX
-You are Assessed for street repairs.
- $40 per House
- $115 per Hotel
-%%
-++100
-X-mas Fund Matures.
-Collect $100.
-%%
-++11
-You have won Second Prize in a Beauty Contest
-Collect $11
-%%
-MF0
-Advance to GO
-(Collect $200)
-%%
-++100
-You inherit $100
-%%
---150
-Pay School Tax of $150.
-%%
-MJ
- >> GO TO JAIL <<
-Go Directly to Jail. Do not pass GO Do not collect $200.
-%%
-+A50
- >> GRAND OPERA OPENING <<
-Collect $50 from each player for opening night seats.
-%%
---50
-Doctor's Fee: Pay $50.
-%-
-FF
->> GET OUT OF JAIL FREE <<
-Keep this card until needed or sold
-%%
-MR
-Advance to the nearest Railroad, and pay owner
-Twice the rental to which he is otherwise entitled.
-If Railroad is unowned you may buy it from the bank
-%%
-MU
-Advance to the nearest Utility.
-If unowned, you may buy it from the bank.
-If owned, throw dice and pay oner a total of ten times
-the amount thrown.
-%%
-MB3
-Go Back 3 Spaces
-%%
-MR
-Advance to the nearest Railroad, and pay owner
-Twice the rental to which he is otherwise entitled.
-If Railroad is unowned you may buy it from the bank
-%%
-MJ
- >> GO DIRECTLY TO JAIL <<
-Do not pass GO, Do not Collect $200.
-%%
-MF5
-Take a Ride on the Reading.
-If you pass GO, collect $200.
-%%
-MF39
-Take a Walk on the Board Walk.
- (Advance To Board Walk)
-%%
-MF24
-Advance to Illinos Ave.
-%%
-MF0
-Advance to Go
-%%
-MF11
-Advance to St. Charles Place.
-If you pass GO, collect $200.
-%%
-TX
-Make general repairs on all of your Property.
-For Each House pay $25.
-For Each Hotel pay $100.
-%%
--A50
-You have been elected Chairman of the Board.
-Pay each player $50.
-%%
---15
-Pay Poor Tax of $15
-%%
-++50
-Bank pays you Dividend of $50.
-%%
-++150
-Your Building and Loan Matures.
-Collect $150.
diff --git a/games/monop/deck.h b/games/monop/deck.h
deleted file mode 100644
index 604937d..0000000
--- a/games/monop/deck.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)deck.h 8.1 (Berkeley) 5/31/93
- */
-
-# define bool char
-
-# define CC_D deck[0]
-# define CH_D deck[1]
-
-struct dk_st { /* deck description structure */
- int num_cards; /* number of cards in deck */
- int last_card; /* number of last card picked */
- bool gojf_used; /* set if gojf card out of deck */
- long *offsets; /* offests for start of cards */
-};
-
-typedef struct dk_st DECK;
diff --git a/games/monop/execute.c b/games/monop/execute.c
deleted file mode 100644
index f770432..0000000
--- a/games/monop/execute.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)execute.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-# include <sys/types.h>
-# include <sys/stat.h>
-# include <sys/time.h>
-
-# define SEGSIZE 8192
-
-typedef struct stat STAT;
-typedef struct tm TIME;
-
-extern char etext[], /* end of text space */
- rub();
-
-static char buf[257],
- *yn_only[] = { "yes", "no"};
-
-static bool new_play; /* set if move on to new player */
-
-/*
- * This routine executes the given command by index number
- */
-execute(com_num)
-reg int com_num; {
-
- new_play = FALSE; /* new_play is true if fixing */
- (*func[com_num])();
- notify();
- force_morg();
- if (new_play)
- next_play();
- else if (num_doub)
- printf("%s rolled doubles. Goes again\n", cur_p->name);
-}
-/*
- * This routine moves a piece around.
- */
-do_move() {
-
- reg int r1, r2;
- reg bool was_jail;
-
- new_play = was_jail = FALSE;
- printf("roll is %d, %d\n", r1=roll(1, 6), r2=roll(1, 6));
- if (cur_p->loc == JAIL) {
- was_jail++;
- if (!move_jail(r1, r2)) {
- new_play++;
- goto ret;
- }
- }
- else {
- if (r1 == r2 && ++num_doub == 3) {
- printf("That's 3 doubles. You go to jail\n");
- goto_jail();
- new_play++;
- goto ret;
- }
- move(r1+r2);
- }
- if (r1 != r2 || was_jail)
- new_play++;
-ret:
- return;
-}
-/*
- * This routine moves a normal move
- */
-move(rl)
-reg int rl; {
-
- reg int old_loc;
-
- old_loc = cur_p->loc;
- cur_p->loc = (cur_p->loc + rl) % N_SQRS;
- if (cur_p->loc < old_loc && rl > 0) {
- cur_p->money += 200;
- printf("You pass %s and get $200\n", board[0].name);
- }
- show_move();
-}
-/*
- * This routine shows the results of a move
- */
-show_move() {
-
- reg SQUARE *sqp;
-
- sqp = &board[cur_p->loc];
- printf("That puts you on %s\n", sqp->name);
- switch (sqp->type) {
- case SAFE:
- printf("That is a safe place\n");
- break;
- case CC:
- cc(); break;
- case CHANCE:
- chance(); break;
- case INC_TAX:
- inc_tax(); break;
- case GOTO_J:
- goto_jail(); break;
- case LUX_TAX:
- lux_tax(); break;
- case PRPTY:
- case RR:
- case UTIL:
- if (sqp->owner < 0) {
- printf("That would cost $%d\n", sqp->cost);
- if (getyn("Do you want to buy? ") == 0) {
- buy(player, sqp);
- cur_p->money -= sqp->cost;
- }
- else if (num_play > 2)
- bid(sqp);
- }
- else if (sqp->owner == player)
- printf("You own it.\n");
- else
- rent(sqp);
- }
-}
-/*
- * This routine saves the current game for use at a later date
- */
-save() {
-
- reg char *sp;
- reg int outf, num;
- time_t t;
- int *dat_end;
- struct stat sb;
- unsgn start, end;
-
- printf("Which file do you wish to save it in? ");
- sp = buf;
- while ((*sp++=getchar()) != '\n')
- continue;
- *--sp = '\0';
-
- /*
- * check for existing files, and confirm overwrite if needed
- */
-
- if (stat(buf, &sb) > -1
- && getyn("File exists. Do you wish to overwrite? ", yn_only) > 0)
- return;
-
- if ((outf=creat(buf, 0644)) < 0) {
- perror(buf);
- return;
- }
- printf("\"%s\" ", buf);
- time(&t); /* get current time */
- strcpy(buf, ctime(&t));
- for (sp = buf; *sp != '\n'; sp++)
- continue;
- *sp = '\0';
-# if 0
- start = (((int) etext + (SEGSIZE-1)) / SEGSIZE ) * SEGSIZE;
-# else
- start = 0;
-# endif
- end = sbrk(0);
- while (start < end) { /* write out entire data space */
- num = start + 16 * 1024 > end ? end - start : 16 * 1024;
- write(outf, start, num);
- start += num;
- }
- close(outf);
- printf("[%s]\n", buf);
-}
-/*
- * This routine restores an old game from a file
- */
-restore() {
-
- reg char *sp;
-
- printf("Which file do you wish to restore from? ");
- for (sp = buf; (*sp=getchar()) != '\n'; sp++)
- continue;
- *sp = '\0';
- rest_f(buf);
-}
-/*
- * This does the actual restoring. It returns TRUE if the
- * backup was successful, else false.
- */
-rest_f(file)
-reg char *file; {
-
- reg char *sp;
- reg int inf, num;
- char buf[80];
- unsgn start, end;
- STAT sbuf;
-
- if ((inf=open(file, 0)) < 0) {
- perror(file);
- return FALSE;
- }
- printf("\"%s\" ", file);
- if (fstat(inf, &sbuf) < 0) { /* get file stats */
- perror(file);
- exit(1);
- }
-# if 0
- start = (((int) etext + (SEGSIZE-1)) / SEGSIZE ) * SEGSIZE;
-# else
- start = 0;
-# endif
- brk(end = start + sbuf.st_size);
- while (start < end) { /* write out entire data space */
- num = start + 16 * 1024 > end ? end - start : 16 * 1024;
- read(inf, start, num);
- start += num;
- }
- close(inf);
- strcpy(buf, ctime(&sbuf.st_mtime));
- for (sp = buf; *sp != '\n'; sp++)
- continue;
- *sp = '\0';
- printf("[%s]\n", buf);
- return TRUE;
-}
diff --git a/games/monop/getinp.c b/games/monop/getinp.c
deleted file mode 100644
index 3a4b9d7..0000000
--- a/games/monop/getinp.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)getinp.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include <stdio.h>
-# include <ctype.h>
-
-# define reg register
-
-# define LINE 70
-
-static char buf[257];
-
-getinp(prompt, list)
-char *prompt, *list[]; {
-
- reg int i, n_match, match;
- char *sp;
- int plen;
- static int comp();
-
- for (;;) {
-inter:
- printf(prompt);
- for (sp = buf; (*sp=getchar()) != '\n'; )
- if (*sp == -1) /* check for interupted system call */
- goto inter;
- else if (sp != buf || *sp != ' ')
- sp++;
- if (buf[0] == '?' && buf[1] == '\n') {
- printf("Valid inputs are: ");
- for (i = 0, match = 18; list[i]; i++) {
- if ((match+=(n_match=strlen(list[i]))) > LINE) {
- printf("\n\t");
- match = n_match + 8;
- }
- if (*list[i] == '\0') {
- match += 8;
- printf("<RETURN>");
- }
- else
- printf(list[i]);
- if (list[i+1])
- printf(", ");
- else
- putchar('\n');
- match += 2;
- }
- continue;
- }
- *sp = '\0';
- for (sp = buf; *sp; sp++)
- if (isupper(*sp))
- *sp = tolower(*sp);
- for (i = n_match = 0; list[i]; i++)
- if (comp(list[i])) {
- n_match++;
- match = i;
- }
- if (n_match == 1)
- return match;
- else if (buf[0] != '\0')
- printf("Illegal response: \"%s\". Use '?' to get list of valid answers\n", buf);
- }
-}
-
-static
-comp(s1)
-char *s1; {
-
- reg char *sp, *tsp, c;
-
- if (buf[0] != '\0')
- for (sp = buf, tsp = s1; *sp; ) {
- c = isupper(*tsp) ? tolower(*tsp) : *tsp;
- tsp++;
- if (c != *sp++)
- return 0;
- }
- else if (*s1 != '\0')
- return 0;
- return 1;
-}
diff --git a/games/monop/houses.c b/games/monop/houses.c
deleted file mode 100644
index 5134c20..0000000
--- a/games/monop/houses.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)houses.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-static char *names[N_MON+2],
- cur_prop[80];
-
-static MON *monops[N_MON];
-
-/*
- * These routines deal with buying and selling houses
- */
-buy_houses() {
-
- reg int num_mon;
- reg MON *mp;
- reg OWN *op;
- bool good,got_morg;
- int i,p;
-
-over:
- num_mon = 0;
- good = TRUE;
- got_morg = FALSE;
- for (op = cur_p->own_list; op && op->sqr->type != PRPTY; op = op->next)
- continue;
- while (op)
- if (op->sqr->desc->monop) {
- mp = op->sqr->desc->mon_desc;
- names[num_mon] = (monops[num_mon]=mp)->name;
- num_mon++;
- got_morg = good = FALSE;
- for (i = 0; i < mp->num_in; i++) {
- if (op->sqr->desc->morg)
- got_morg++;
- if (op->sqr->desc->houses != 5)
- good++;
- op = op->next;
- }
- if (!good || got_morg)
- --num_mon;
- }
- else
- op = op->next;
- if (num_mon == 0) {
- if (got_morg)
- printf("You can't build on mortgaged monopolies.\n");
- else if (!good)
- printf("You can't build any more.\n");
- else
- printf("But you don't have any monopolies!!\n");
- return;
- }
- if (num_mon == 1)
- buy_h(monops[0]);
- else {
- names[num_mon++] = "done";
- names[num_mon--] = 0;
- if ((p=getinp("Which property do you wish to buy houses for? ", names)) == num_mon)
- return;
- buy_h(monops[p]);
- goto over;
- }
-}
-
-buy_h(mnp)
-MON *mnp; {
-
- reg int i;
- reg MON *mp;
- reg int price;
- shrt input[3],temp[3];
- int tot;
- PROP *pp;
-
- mp = mnp;
- price = mp->h_cost * 50;
-blew_it:
- list_cur(mp);
- printf("Houses will cost $%d\n", price);
- printf("How many houses do you wish to buy for\n");
- for (i = 0; i < mp->num_in; i++) {
- pp = mp->sq[i]->desc;
-over:
- if (pp->houses == 5) {
- printf("%s (H):\n", mp->sq[i]->name);
- input[i] = 0;
- temp[i] = 5;
- continue;
- }
- (void)sprintf(cur_prop, "%s (%d): ",
- mp->sq[i]->name, pp->houses);
- input[i] = get_int(cur_prop);
- temp[i] = input[i] + pp->houses;
- if (temp[i] > 5) {
- printf("That's too many. The most you can buy is %d\n",
- 5 - pp->houses);
- goto over;
- }
- }
- if (mp->num_in == 3 && (abs(temp[0] - temp[1]) > 1 ||
- abs(temp[0] - temp[2]) > 1 || abs(temp[1] - temp[2]) > 1)) {
-err: printf("That makes the spread too wide. Try again\n");
- goto blew_it;
- }
- else if (mp->num_in == 2 && abs(temp[0] - temp[1]) > 1)
- goto err;
- for (tot = i = 0; i < mp->num_in; i++)
- tot += input[i];
- if (tot) {
- printf("You asked for %d houses for $%d\n", tot, tot * price);
- if (getyn("Is that ok? ", yn) == 0) {
- cur_p->money -= tot * price;
- for (tot = i = 0; i < mp->num_in; i++)
- mp->sq[i]->desc->houses = temp[i];
- }
- }
-}
-
-/*
- * This routine sells houses.
- */
-sell_houses() {
-
- reg int num_mon;
- reg MON *mp;
- reg OWN *op;
- bool good;
- int p;
-
-over:
- num_mon = 0;
- good = TRUE;
- for (op = cur_p->own_list; op; op = op->next)
- if (op->sqr->type == PRPTY && op->sqr->desc->monop) {
- mp = op->sqr->desc->mon_desc;
- names[num_mon] = (monops[num_mon]=mp)->name;
- num_mon++;
- good = 0;
- do
- if (!good && op->sqr->desc->houses != 0)
- good++;
- while (op->next && op->sqr->desc->mon_desc == mp
- && (op=op->next));
- if (!good)
- --num_mon;
- }
- if (num_mon == 0) {
- printf("You don't have any houses to sell!!\n");
- return;
- }
- if (num_mon == 1)
- sell_h(monops[0]);
- else {
- names[num_mon++] = "done";
- names[num_mon--] = 0;
- if ((p=getinp("Which property do you wish to sell houses from? ", names)) == num_mon)
- return;
- sell_h(monops[p]);
- notify();
- goto over;
- }
-}
-
-sell_h(mnp)
-MON *mnp; {
-
- reg int i;
- reg MON *mp;
- reg int price;
- shrt input[3],temp[3];
- int tot;
- PROP *pp;
-
- mp = mnp;
- price = mp->h_cost * 25;
-blew_it:
- printf("Houses will get you $%d apiece\n", price);
- list_cur(mp);
- printf("How many houses do you wish to sell from\n");
- for (i = 0; i < mp->num_in; i++) {
- pp = mp->sq[i]->desc;
-over:
- if (pp->houses == 0) {
- printf("%s (0):\n", mp->sq[i]->name);
- input[i] = temp[i] = 0;
- continue;
- }
- if (pp->houses < 5)
- (void)sprintf(cur_prop,"%s (%d): ",
- mp->sq[i]->name,pp->houses);
- else
- (void)sprintf(cur_prop,"%s (H): ",mp->sq[i]->name);
- input[i] = get_int(cur_prop);
- temp[i] = pp->houses - input[i];
- if (temp[i] < 0) {
- printf("That's too many. The most you can sell is %d\n", pp->houses);
- goto over;
- }
- }
- if (mp->num_in == 3 && (abs(temp[0] - temp[1]) > 1 ||
- abs(temp[0] - temp[2]) > 1 || abs(temp[1] - temp[2]) > 1)) {
-err: printf("That makes the spread too wide. Try again\n");
- goto blew_it;
- }
- else if (mp->num_in == 2 && abs(temp[0] - temp[1]) > 1)
- goto err;
- for (tot = i = 0; i < mp->num_in; i++)
- tot += input[i];
- if (tot) {
- printf("You asked to sell %d houses for $%d\n",tot,tot * price);
- if (getyn("Is that ok? ", yn) == 0) {
- cur_p->money += tot * price;
- for (tot = i = 0; i < mp->num_in; i++)
- mp->sq[i]->desc->houses = temp[i];
- }
- }
-}
-
-list_cur(mp)
-reg MON *mp; {
-
- reg int i;
- reg SQUARE *sqp;
-
- for (i = 0; i < mp->num_in; i++) {
- sqp = mp->sq[i];
- if (sqp->desc->houses == 5)
- printf("%s (H) ", sqp->name);
- else
- printf("%s (%d) ", sqp->name, sqp->desc->houses);
- }
- putchar('\n');
-}
diff --git a/games/monop/initdeck.c b/games/monop/initdeck.c
deleted file mode 100644
index 87b64f4..0000000
--- a/games/monop/initdeck.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char copyright[] =
-"@(#) Copyright (c) 1980, 1993\n\
- The Regents of the University of California. All rights reserved.\n";
-#endif /* not lint */
-
-#ifndef lint
-static char sccsid[] = "@(#)initdeck.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include <stdio.h>
-# include "deck.h"
-
-/*
- * This program initializes the card files for monopoly.
- * It reads in a data file with Com. Chest cards, followed by
- * the Chance card. The two are seperated by a line of "%-".
- * All other cards are seperated by lines of "%%". In the front
- * of the file is the data for the decks in the same order.
- * This includes the seek pointer for the start of each card.
- * All cards start with their execution code, followed by the
- * string to print, terminated with a null byte.
- */
-
-# define TRUE 1
-# define FALSE 0
-
-# define bool char
-# define reg register
-
-char *infile = "cards.inp", /* input file */
- *outfile = "cards.pck"; /* "packed" file */
-
-extern long ftell();
-extern char *calloc();
-
-DECK deck[2];
-
-FILE *inf, *outf;
-
-main(ac, av)
-int ac;
-char *av[]; {
-
- getargs(ac, av);
- if ((inf = fopen(infile, "r")) == NULL) {
- perror(infile);
- exit(1);
- }
- count();
- /*
- * allocate space for pointers.
- */
- CC_D.offsets = (long *)calloc(CC_D.num_cards + 1, sizeof (long));
- CH_D.offsets = (long *)calloc(CH_D.num_cards + 1, sizeof (long));
- fseek(inf, 0L, 0);
- if ((outf = fopen(outfile, "w")) == NULL) {
- perror(outfile);
- exit(0);
- }
-
- fwrite(deck, sizeof (DECK), 2, outf);
- fwrite(CC_D.offsets, sizeof (long), CC_D.num_cards, outf);
- fwrite(CH_D.offsets, sizeof (long), CH_D.num_cards, outf);
- putem();
-
- fclose(inf);
- fseek(outf, 0, 0L);
- fwrite(deck, sizeof (DECK), 2, outf);
- fwrite(CC_D.offsets, sizeof (long), CC_D.num_cards, outf);
- fwrite(CH_D.offsets, sizeof (long), CH_D.num_cards, outf);
- fclose(outf);
- printf("There were %d com. chest and %d chance cards\n", CC_D.num_cards, CH_D.num_cards);
- exit(0);
-}
-
-getargs(ac, av)
-int ac;
-char *av[]; {
-
- if (ac > 1)
- infile = av[1];
- if (ac > 2)
- outfile = av[2];
-}
-
-/*
- * count the cards
- */
-count() {
-
- reg bool newline;
- reg DECK *in_deck;
- reg char c;
-
- newline = TRUE;
- in_deck = &CC_D;
- while ((c=getc(inf)) != EOF)
- if (newline && c == '%') {
- newline = FALSE;
- in_deck->num_cards++;
- if (getc(inf) == '-')
- in_deck = &CH_D;
- }
- else
- newline = (c == '\n');
- in_deck->num_cards++;
-}
-/*
- * put strings in the file
- */
-putem() {
-
- reg bool newline;
- reg DECK *in_deck;
- reg char c;
- reg int num;
-
- in_deck = &CC_D;
- CC_D.num_cards = 1;
- CH_D.num_cards = 0;
- CC_D.offsets[0] = ftell(outf);
- putc(getc(inf), outf);
- putc(getc(inf), outf);
- for (num = 0; (c=getc(inf)) != '\n'; )
- num = num * 10 + (c - '0');
- putw(num, outf);
- newline = FALSE;
- while ((c=getc(inf)) != EOF)
- if (newline && c == '%') {
- putc('\0', outf);
- newline = FALSE;
- if (getc(inf) == '-')
- in_deck = &CH_D;
- while (getc(inf) != '\n')
- continue;
- in_deck->offsets[in_deck->num_cards++] = ftell(outf);
- if ((c=getc(inf)) == EOF)
- break;
- putc(c, outf);
- putc(c = getc(inf), outf);
- for (num = 0; (c=getc(inf)) != EOF && c != '\n'; )
- num = num * 10 + (c - '0');
- putw(num, outf);
- }
- else {
- putc(c, outf);
- newline = (c == '\n');
- }
- putc('\0', outf);
-}
diff --git a/games/monop/jail.c b/games/monop/jail.c
deleted file mode 100644
index e0334c5..0000000
--- a/games/monop/jail.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)jail.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-/*
- * This routine uses a get-out-of-jail-free card to get the
- * player out of jail.
- */
-card() {
-
- if (cur_p->loc != JAIL) {
- printf("But you're not IN Jail\n");
- return;
- }
- if (cur_p->num_gojf == 0) {
- printf("But you don't HAVE a get out of jail free card\n");
- return;
- }
- ret_card(cur_p);
- cur_p->loc = 10; /* just visiting */
- cur_p->in_jail = 0;
-}
-/*
- * This routine returns the players get-out-of-jail-free card
- * to a deck.
- */
-ret_card(plr)
-reg PLAY *plr; {
-
- plr->num_gojf--;
- if (CC_D.gojf_used)
- CC_D.gojf_used = FALSE;
- else
- CH_D.gojf_used = FALSE;
-}
-/*
- * This routine deals with paying your way out of jail.
- */
-pay() {
-
- if (cur_p->loc != JAIL) {
- printf("But you're not IN Jail\n");
- return;
- }
- cur_p->loc = 10;
- cur_p->money -= 50;
- cur_p->in_jail = 0;
- printf("That cost you $50\n");
-}
-/*
- * This routine deals with a move in jail
- */
-move_jail(r1, r2)
-reg int r1, r2; {
-
- if (r1 != r2) {
- printf("Sorry, that doesn't get you out\n");
- if (++(cur_p->in_jail) == 3) {
- printf("It's your third turn and you didn't roll doubles. You have to pay $50\n");
- cur_p->money -= 50;
-moveit:
- cur_p->loc = 10;
- cur_p->in_jail = 0;
- move(r1+r2);
- r1 = r2 - 1; /* kludge: stop new roll w/doub */
- return TRUE;
- }
- return FALSE;
- }
- else {
- printf("Double roll gets you out.\n");
- goto moveit;
- }
-}
-printturn() {
-
- if (cur_p->loc != JAIL)
- return;
- printf("(This is your ");
- switch (cur_p->in_jail) {
- case 0:
- printf("1st");
- break;
- case 1:
- printf("2nd");
- break;
- case 2:
- printf("3rd (and final)");
- break;
- }
- printf(" turn in JAIL)\n");
-}
diff --git a/games/monop/misc.c b/games/monop/misc.c
deleted file mode 100644
index ed26534..0000000
--- a/games/monop/misc.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-# include <ctype.h>
-# include <signal.h>
-
-/*
- * This routine executes a truncated set of commands until a
- * "yes or "no" answer is gotten.
- */
-getyn(prompt)
-reg char *prompt; {
-
- reg int com;
-
- for (;;)
- if ((com=getinp(prompt, yn)) < 2)
- return com;
- else
- (*func[com-2])();
-}
-/*
- * This routine tells the player if he's out of money.
- */
-notify() {
-
- if (cur_p->money < 0)
- printf("That leaves you $%d in debt\n", -cur_p->money);
- else if (cur_p->money == 0)
- printf("that leaves you broke\n");
- else if (fixing && !told_em && cur_p->money > 0) {
- printf("-- You are now Solvent ---\n");
- told_em = TRUE;
- }
-}
-/*
- * This routine switches to the next player
- */
-next_play() {
-
- player = ++player % num_play;
- cur_p = &play[player];
- num_doub = 0;
-}
-/*
- * This routine gets an integer from the keyboard after the
- * given prompt.
- */
-get_int(prompt)
-reg char *prompt; {
-
- reg int num;
- reg char *sp;
- char buf[257];
-
- for (;;) {
-inter:
- printf(prompt);
- num = 0;
- for (sp = buf; (*sp=getchar()) != '\n'; sp++)
- if (*sp == -1) /* check for interrupted system call */
- goto inter;
- if (sp == buf)
- continue;
- for (sp = buf; isspace(*sp); sp++)
- continue;
- for (; isdigit(*sp); sp++)
- num = num * 10 + *sp - '0';
- if (*sp == '\n')
- return num;
- else
- printf("I can't understand that\n");
- }
-}
-/*
- * This routine sets the monopoly flag from the list given.
- */
-set_ownlist(pl)
-int pl; {
-
- reg int num; /* general counter */
- reg MON *orig; /* remember starting monop ptr */
- reg OWN *op; /* current owned prop */
- OWN *orig_op; /* origianl prop before loop */
-
- op = play[pl].own_list;
-#ifdef DEBUG
- printf("op [%d] = play[pl [%d] ].own_list;\n", op, pl);
-#endif
- while (op) {
-#ifdef DEBUG
- printf("op->sqr->type = %d\n", op->sqr->type);
-#endif
- switch (op->sqr->type) {
- case UTIL:
-#ifdef DEBUG
- printf(" case UTIL:\n");
-#endif
- for (num = 0; op && op->sqr->type == UTIL; op = op->next)
- num++;
- play[pl].num_util = num;
-#ifdef DEBUG
- printf("play[pl].num_util = num [%d];\n", num);
-#endif
- break;
- case RR:
-#ifdef DEBUG
- printf(" case RR:\n");
-#endif
- for (num = 0; op && op->sqr->type == RR; op = op->next) {
-#ifdef DEBUG
- printf("iter: %d\n", num);
- printf("op = %d, op->sqr = %d, op->sqr->type = %d\n", op, op->sqr, op->sqr->type);
-#endif
- num++;
- }
- play[pl].num_rr = num;
-#ifdef DEBUG
- printf("play[pl].num_rr = num [%d];\n", num);
-#endif
- break;
- case PRPTY:
-#ifdef DEBUG
- printf(" case PRPTY:\n");
-#endif
- orig = op->sqr->desc->mon_desc;
- orig_op = op;
- num = 0;
- while (op && op->sqr->desc->mon_desc == orig) {
-#ifdef DEBUG
- printf("iter: %d\n", num);
-#endif
- num++;
-#ifdef DEBUG
- printf("op = op->next ");
-#endif
- op = op->next;
-#ifdef DEBUG
- printf("[%d];\n", op);
-#endif
- }
-#ifdef DEBUG
- printf("num = %d\n");
-#endif
- if (orig == 0) {
- printf("panic: bad monopoly descriptor: orig = %d\n", orig);
- printf("player # %d\n", pl+1);
- printhold(pl);
- printf("orig_op = %d\n", orig_op);
- printf("orig_op->sqr->type = %d (PRPTY)\n", op->sqr->type);
- printf("orig_op->next = %d\n", op->next);
- printf("orig_op->sqr->desc = %d\n", op->sqr->desc);
- printf("op = %d\n", op);
- printf("op->sqr->type = %d (PRPTY)\n", op->sqr->type);
- printf("op->next = %d\n", op->next);
- printf("op->sqr->desc = %d\n", op->sqr->desc);
- printf("num = %d\n", num);
- }
-#ifdef DEBUG
- printf("orig->num_in = %d\n", orig->num_in);
-#endif
- if (num == orig->num_in)
- is_monop(orig, pl);
- else
- isnot_monop(orig);
- break;
- }
- }
-}
-/*
- * This routine sets things up as if it is a new monopoly
- */
-is_monop(mp, pl)
-reg MON *mp;
-int pl; {
-
- reg char *sp;
- reg int i;
-
- mp->owner = pl;
- mp->num_own = mp->num_in;
- for (i = 0; i < mp->num_in; i++)
- mp->sq[i]->desc->monop = TRUE;
- mp->name = mp->mon_n;
-}
-/*
- * This routine sets things up as if it is no longer a monopoly
- */
-isnot_monop(mp)
-reg MON *mp; {
-
- reg char *sp;
- reg int i;
-
- mp->owner = -1;
- for (i = 0; i < mp->num_in; i++)
- mp->sq[i]->desc->monop = FALSE;
- mp->name = mp->not_m;
-}
-/*
- * This routine gives a list of the current player's routine
- */
-list() {
-
- printhold(player);
-}
-/*
- * This routine gives a list of a given players holdings
- */
-list_all() {
-
- reg int pl;
-
- while ((pl=getinp("Whose holdings do you want to see? ", name_list)) < num_play)
- printhold(pl);
-}
-/*
- * This routine gives the players a chance before it exits.
- */
-void
-quit() {
-
- putchar('\n');
- if (getyn("Do you all really want to quit? ", yn) == 0)
- exit(0);
- signal(SIGINT, quit);
-}
-/*
- * This routine copies one structure to another
- */
-cpy_st(s1, s2, size)
-reg int *s1, *s2, size; {
-
- size /= 2;
- while (size--)
- *s1++ = *s2++;
-}
diff --git a/games/monop/mon.dat b/games/monop/mon.dat
deleted file mode 100644
index 8d5ab4d..0000000
--- a/games/monop/mon.dat
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)mon.dat 5.4 (Berkeley) 5/31/93
- */
-
-/* name owner num_in num_own h_cost not_m mon_n sq */
-{0, -1, 2, 0, 1, "Purple", "PURPLE", {1,3}},
-{0, -1, 3, 0, 1, "Lt. Blue", "LT. BLUE", {6,8,9}},
-{0, -1, 3, 0, 2, "Violet", "VIOLET", {11,13,14}},
-{0, -1, 3, 0, 2, "Orange", "ORANGE", {16,18,19}},
-{0, -1, 3, 0, 3, "Red", "RED", {21,23,24}},
-{0, -1, 3, 0, 3, "Yellow", "YELLOW", {26,27,29}},
-{0, -1, 3, 0, 4, "Green", "GREEN", {31,32,34}},
-{0, -1, 2, 0, 4, "Dk. Blue", "DK. BLUE", {37,39}}
diff --git a/games/monop/monop.6 b/games/monop/monop.6
deleted file mode 100644
index 35b2e8d..0000000
--- a/games/monop/monop.6
+++ /dev/null
@@ -1,188 +0,0 @@
-.\" Copyright (c) 1980 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)monop.6 6.5 (Berkeley) 3/25/93
-.\"
-.de Sc \" start command list macro
-.ie n .PD 0
-.el .PD 0.5
-.sp
-..
-.de Cm \" define command macro
-.TP 10
-.ie t .BR "\\$1" :
-.el .IR "\\$1" :
-..
-.de Ec \" end command macro
-.PD 1
-..
-.TH MONOP 6 "March 25, 1993"
-.UC 4
-.SH NAME
-monop \- Monopoly game
-.SH SYNOPSIS
-.B /usr/games/monop
-[ file ]
-.SH DESCRIPTION
-.I Monop
-is reminiscent of the Parker Brother's game Monopoly, and
-monitors a game between 1 to 9 users.
-It is assumed that the rules of Monopoly are known.
-The game follows the standard rules, with the exception that,
-if a property goes up for auction and there are only two solvent players,
-no auction is held and the property remains unowned.
-.PP
-The game, in effect, lends the player money,
-so it is possible to buy something which you cannot afford.
-However, as soon as a person goes into debt,
-he must \*(lqfix the problem\*(rq,
-.IR i.e. ,
-make himself solvent, before play can continue.
-If this is not possible, the player's property reverts to his debtee,
-either a player or the bank.
-A player can resign at any time to any person or the bank,
-which puts the property back on the board, unowned.
-.PP
-Any time that the response to a question is a
-.IR string ,
-e.g., a name, place or person, you can type `?' to get a list of valid answers.
-It is not possible to input a negative number, nor is it ever necessary.
-.Sc
-.IR "A Summary of Commands" :
-.Cm quit
-quit game: This allows you to quit the game. It asks you if you're sure.
-.Cm print
-print board: This prints out the current board.
-The columns have the following meanings (column headings are the same for the
-.BR where ,
-.BR "own holdings" ,
-and
-.B holdings
-commands):
-.PP
-.RS 10
-.TP "\w'Name\ \ 'u"
-Name
-The first ten characters of the name of the square
-.TP
-Own
-The \fInumber\fR of the owner of the property.
-.TP
-Price
-The cost of the property (if any)
-.TP
-Mg
-This field has a `*' in it if the property is mortgaged
-.TP
-#
-If the property is a Utility or Railroad, this is the number
-of such owned by the owner.
-If the property is land, this is the number of houses on it.
-.TP
-Rent
-Current rent on the property. If it is not owned, there is no rent.
-.RE
-.Cm where
-where players are: Tells you where all the players are.
-A `*' indicates the current player.
-.Cm "own\ holdings"
-List your own holdings,
-.IR i.e. ,
-money, get-out-of-jail-free cards, and property.
-.Cm holdings
-holdings list: Look at anyone's holdings.
-It will ask you whose holdings you wish to look at.
-When you are finished, type \*(lqdone\*(rq.
-.Cm mortgage
-mortgage property:
-Sets up a list of mortgageable property, and asks which you wish to mortgage.
-.Cm unmortgage
-unmortgage property:
-Unmortgage mortgaged property.
-.Cm buy
-buy houses:
-Sets up a list of monopolies on which you can buy houses.
-If there is more than one, it asks you which you want to buy for.
-It then asks you how many for each piece of property,
-giving the current amount in parentheses after the property name.
-If you build in an unbalanced manner
-(a disparity of more than one house within the same monopoly),
-it asks you to re-input things.
-.Cm sell
-sell houses:
-Sets up a list of monopolies from which you can sell houses.
-It operates in an analogous manner to
-.I buy.
-.Cm card
-card for jail:
-Use a get-out-of-jail-free card to get out of jail.
-If you're not in jail, or you don't have one, it tells you so.
-.Cm pay
-pay for jail:
-Pay $50 to get out of jail, from whence you are put on Just Visiting.
-Difficult to do if you're not there.
-.Cm trade
-This allows you to trade with another player.
-It asks you whom you wish to trade with,
-and then asks you what each wishes to give up.
-You can get a summary at the end, and, in all cases,
-it asks for confirmation of the trade before doing it.
-.Cm resign
-Resign to another player or the bank.
-If you resign to the bank, all property reverts to its virgin state,
-and get-out-of-jail free cards revert to the deck.
-.Cm save
-save game:
-Save the current game in a file for later play.
-You can continue play after saving,
-either by adding the file in which you saved the game after the
-.I monop
-command, or by using the
-.I restore
-command (see below).
-It will ask you which file you wish to save it in,
-and, if the file exists, confirm that you wish to overwrite it.
-.Cm restore
-restore game:
-Read in a previously saved game from a file.
-It leaves the file intact.
-.Cm roll
-Roll the dice and move forward to your new location.
-If you simply hit the <RETURN> key instead of a command,
-it is the same as typing
-.IR roll .
-.Ec
-.SH AUTHOR
-Ken Arnold
-.SH FILES
-/usr/games/lib/cards.pck Chance and Community Chest cards
-.SH BUGS
-No command can be given an argument instead of a response to a query.
diff --git a/games/monop/monop.c b/games/monop/monop.c
deleted file mode 100644
index 2b39e70..0000000
--- a/games/monop/monop.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char copyright[] =
-"@(#) Copyright (c) 1980, 1993\n\
- The Regents of the University of California. All rights reserved.\n";
-#endif /* not lint */
-
-#ifndef lint
-static char sccsid[] = "@(#)monop.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.def"
-
-/*
- * This program implements a monopoly game
- */
-main(ac, av)
-reg int ac;
-reg char *av[]; {
-
-
- srand(getpid());
- if (ac > 1) {
- if (!rest_f(av[1]))
- restore();
- }
- else {
- getplayers();
- init_players();
- init_monops();
- }
- num_luck = sizeof lucky_mes / sizeof (char *);
- init_decks();
- signal(2, quit);
- for (;;) {
- printf("\n%s (%d) (cash $%d) on %s\n", cur_p->name, player + 1,
- cur_p->money, board[cur_p->loc].name);
- printturn();
- force_morg();
- execute(getinp("-- Command: ", comlist));
- }
-}
-/*
- * This routine gets the names of the players
- */
-getplayers() {
-
- reg char *sp;
- reg int i, j;
- char buf[257];
-
-blew_it:
- for (;;) {
- if ((num_play=get_int("How many players? ")) <= 0 ||
- num_play > MAX_PL)
- printf("Sorry. Number must range from 1 to 9\n");
- else
- break;
- }
- cur_p = play = (PLAY *) calloc(num_play, sizeof (PLAY));
- for (i = 0; i < num_play; i++) {
-over:
- printf("Player %d's name: ", i + 1);
- for (sp = buf; (*sp=getchar()) != '\n'; sp++)
- continue;
- if (sp == buf)
- goto over;
- *sp++ = '\0';
- strcpy(name_list[i]=play[i].name=(char *)calloc(1,sp-buf),buf);
- play[i].money = 1500;
- }
- name_list[i++] = "done";
- name_list[i] = 0;
- for (i = 0; i < num_play; i++)
- for (j = i + 1; j < num_play; j++)
- if (strcasecmp(name_list[i], name_list[j]) == 0) {
- if (i != num_play - 1)
- printf("Hey!!! Some of those are IDENTICAL!! Let's try that again....\n");
- else
- printf("\"done\" is a reserved word. Please try again\n");
- for (i = 0; i < num_play; i++)
- cfree(play[i].name);
- cfree(play);
- goto blew_it;
- }
-}
-/*
- * This routine figures out who goes first
- */
-init_players() {
-
- reg int i, rl, cur_max;
- bool over;
- int max_pl;
-
-again:
- putchar('\n');
- for (cur_max = i = 0; i < num_play; i++) {
- printf("%s (%d) rolls %d\n", play[i].name, i+1, rl=roll(2, 6));
- if (rl > cur_max) {
- over = FALSE;
- cur_max = rl;
- max_pl = i;
- }
- else if (rl == cur_max)
- over++;
- }
- if (over) {
- printf("%d people rolled the same thing, so we'll try again\n",
- over + 1);
- goto again;
- }
- player = max_pl;
- cur_p = &play[max_pl];
- printf("%s (%d) goes first\n", cur_p->name, max_pl + 1);
-}
-/*
- * This routine initalizes the monopoly structures.
- */
-init_monops() {
-
- reg MON *mp;
- reg int i;
-
- for (mp = mon; mp < &mon[N_MON]; mp++) {
- mp->name = mp->not_m;
- for (i = 0; i < mp->num_in; i++)
- mp->sq[i] = &board[mp->sqnums[i]];
- }
-}
diff --git a/games/monop/monop.def b/games/monop/monop.def
deleted file mode 100644
index 89e933d..0000000
--- a/games/monop/monop.def
+++ /dev/null
@@ -1,123 +0,0 @@
-/*-
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)monop.def 5.5 (Berkeley) 5/31/93
- */
-
-# include "monop.h"
-# include "deck.h"
-
-bool fixing, /* set if fixing up debt */
- trading, /* set if in process of trading */
- told_em, /* set if told user he's out of debt */
- spec; /* set if moving by card to RR or UTIL */
-
-char *name_list[MAX_PL+2], /* list of players' names */
- *comlist[] = { /* list of normal commands */
- "quit", /* 0 */ "print", /* 1 */
- "where", /* 2 */ "own holdings", /* 3 */
- "holdings", /* 4 */ "mortgage", /* 5 */
- "unmortgage", /* 6 */ "buy houses", /* 7 */
- "sell houses", /* 8 */ "card", /* 9 */
- "pay", /* 10 */ "trade", /* 11 */
- "resign", /* 12 */ "save", /* 13 */
- "restore", /* 14 */ "roll", /* 15 */
- "", /* 16 */
- 0
- },
- *yn[] = { /* list of commands for yes/no answers */
- "yes", /* 0 */ "no", /* 1 */
- "quit", /* 2 */ "print", /* 3 */
- "where", /* 4 */ "own holdings", /* 5 */
- "holdings", /* 6 */
- 0
- },
- *lucky_mes[] = { /* "got lucky" messages */
- "You lucky stiff", "You got lucky",
- "What a lucky person!", "You must have a 4-leaf clover",
- "My, my! Aren't we lucky!", "Luck smiles upon you",
- "You got lucky this time", "Lucky person!",
- "Your karma must certainly be together",
- "How beautifully Cosmic", "Wow, you must be really with it"
- /* "I want your autograph", -- Save for later */
- };
-
-int player, /* current player number */
- num_play, /* current number of players */
- num_doub, /* # of doubles current player rolled */
- /* # of "got lucky" messages */
- num_luck = sizeof lucky_mes / sizeof (char *),
- /* list of command functions */
- buy_houses(), card(), do_move(), do_move(), list(), list_all(),
- mortgage(), pay(), printboard(), quit(), resign(), restore(),
- rub(), save(), sell_houses(), trade(),
- unmortgage(), where(),
- (*func[])() = { /* array of function calls for commands */
- quit, /* quit game |* 0 *| */
- printboard, /* print board |* 1 *| */
- where, /* where players are |* 2 *| */
- list, /* own holdings |* 3 *| */
- list_all, /* holdings list |* 4 *| */
- mortgage, /* mortgage property |* 5 *| */
- unmortgage, /* unmortgage property |* 6 *| */
- buy_houses, /* buy houses |* 7 *| */
- sell_houses, /* sell houses |* 8 *| */
- card, /* card for jail |* 9 *| */
- pay, /* pay for jail |* 10 *| */
- trade, /* trade |* 11 *| */
- resign, /* resign |* 12 *| */
- save, /* save game |* 13 *| */
- restore, /* restore game |* 14 *| */
- do_move, /* roll |* 15 *| */
- do_move /* "" |* 16 *| */
- };
-
-DECK deck[2]; /* Chance and Community Chest */
-
-PLAY *play, /* player structure array ("calloc"ed) */
- *cur_p; /* pointer to current player's struct */
-
-RR_S rr[N_RR]; /* raildroad descriptions */
-
-UTIL_S util[2]; /* utility descriptions */
-
-MON mon[N_MON] = { /* monopoly descriptions */
-# include "mon.dat"
-};
-
-PROP prop[N_PROP] = { /* typical properties */
-# include "prop.dat"
-};
-
-SQUARE board[N_SQRS+1] = { /* board itself (+1 for Jail) */
-# include "brd.dat"
-};
diff --git a/games/monop/monop.ext b/games/monop/monop.ext
deleted file mode 100644
index a5fc616..0000000
--- a/games/monop/monop.ext
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)monop.ext 5.4 (Berkeley) 5/31/93
- */
-
-# include "monop.h"
-# include "deck.h"
-
-extern bool trading, spec, fixing, told_em;
-
-extern char *yn[], *comlist[], *name_list[], *lucky_mes[];
-
-extern int num_play, player, num_doub, num_luck, (*func[])();
-
-extern DECK deck[2];
-
-extern MON mon[];
-
-extern PLAY *play, *cur_p;
-
-extern PROP prop[];
-
-extern RR_S rr[];
-
-extern SQUARE board[];
-
-extern UTIL_S util[];
diff --git a/games/monop/monop.h b/games/monop/monop.h
deleted file mode 100644
index 744732c..0000000
--- a/games/monop/monop.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)monop.h 8.1 (Berkeley) 5/31/93
- */
-
-# include <stdio.h>
-
-# define reg register
-# define shrt char
-# define bool char
-# define unsgn unsigned
-
-# define TRUE (1)
-# define FALSE (0)
-
-# define N_MON 8 /* number of monopolies */
-# define N_PROP 22 /* number of normal property squares */
-# define N_RR 4 /* number of railroads */
-# define N_UTIL 2 /* number of utilities */
-# define N_SQRS 40 /* number of squares on board */
-# define MAX_PL 9 /* maximum number of players */
-# define MAX_PRP (N_PROP+N_RR+N_UTIL) /* max # ownable property */
-
- /* square type numbers */
-# define PRPTY 0 /* normal property */
-# define RR 1 /* railroad */
-# define UTIL 2 /* water works - electric co */
-# define SAFE 3 /* safe spot */
-# define CC 4 /* community chest */
-# define CHANCE 5 /* chance (surprise!!!) */
-# define INC_TAX 6 /* Income tax */
-# define GOTO_J 7 /* Go To Jail! */
-# define LUX_TAX 8 /* Luxury tax */
-# define IN_JAIL 9 /* In jail */
-
-# define JAIL 40 /* JAIL square number */
-
-# define lucky(str) printf("%s%s\n",str,lucky_mes[roll(1,num_luck)-1])
-# define printline() printf("------------------------------\n")
-# define sqnum(sqp) (sqp - board)
-# define swap(A1,A2) if ((A1) != (A2)) { \
- (A1) ^= (A2); \
- (A2) ^= (A1); \
- (A1) ^= (A2); \
- }
-
-struct sqr_st { /* structure for square */
- char *name; /* place name */
- shrt owner; /* owner number */
- shrt type; /* place type */
- struct prp_st *desc; /* description struct */
- int cost; /* cost */
-};
-
-typedef struct sqr_st SQUARE;
-
-struct mon_st { /* monopoly description structure */
- char *name; /* monop. name (color) */
- shrt owner; /* owner of monopoly */
- shrt num_in; /* # in monopoly */
- shrt num_own; /* # owned (-1: not poss. monop)*/
- shrt h_cost; /* price of houses */
- char *not_m; /* name if not monopoly */
- char *mon_n; /* name if a monopoly */
- char sqnums[3]; /* Square numbers (used to init)*/
- SQUARE *sq[3]; /* list of squares in monop */
-};
-
-typedef struct mon_st MON;
-
-/*
- * This struct describes a property. For railroads and utilities, only
- * the "morg" member is used.
- */
-struct prp_st { /* property description structure */
- bool morg; /* set if mortgaged */
- bool monop; /* set if monopoly */
- shrt square; /* square description */
- shrt houses; /* number of houses */
- MON *mon_desc; /* name of color */
- int rent[6]; /* rents */
-};
-
-struct own_st { /* element in list owned things */
- SQUARE *sqr; /* pointer to square */
- struct own_st *next; /* next in list */
-};
-
-typedef struct own_st OWN;
-
-struct plr_st { /* player description structure */
- char *name; /* owner name */
- shrt num_gojf; /* # of get-out-of-jail-free's */
- shrt num_rr; /* # of railroads owned */
- shrt num_util; /* # of water works/elec. co. */
- shrt loc; /* location on board */
- shrt in_jail; /* count of turns in jail */
- int money; /* amount of money */
- OWN *own_list; /* start of propery list */
-};
-
-typedef struct plr_st PLAY;
-typedef struct prp_st PROP;
-typedef struct prp_st RR_S;
-typedef struct prp_st UTIL_S;
-
-int cc(), chance(), lux_tax(), goto_jail(), inc_tax();
diff --git a/games/monop/morg.c b/games/monop/morg.c
deleted file mode 100644
index d88fa34..0000000
--- a/games/monop/morg.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)morg.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-/*
- * These routines deal with mortgaging.
- */
-
-static char *names[MAX_PRP+2],
- *morg_coms[] = {
- "quit", /* 0 */
- "print", /* 1 */
- "where", /* 2 */
- "own holdings", /* 3 */
- "holdings", /* 4 */
- "mortgage", /* 5 */
- "unmortgage", /* 6 */
- "buy", /* 7 */
- "sell", /* 8 */
- "card", /* 9 */
- "pay", /* 10 */
- "trade", /* 11 */
- "resign", /* 12 */
- "save game", /* 13 */
- "restore game", /* 14 */
- 0
- };
-
-static shrt square[MAX_PRP+2];
-
-static int num_good,got_houses;
-
-/*
- * This routine is the command level response the mortgage command.
- * it gets the list of mortgageable property and asks which are to
- * be mortgaged.
- */
-mortgage() {
-
- reg int prop;
-
- for (;;) {
- if (set_mlist() == 0) {
- if (got_houses)
- printf("You can't mortgage property with houses on it.\n");
- else
- printf("You don't have any un-mortgaged property.\n");
- return;
- }
- if (num_good == 1) {
- printf("Your only mortageable property is %s\n",names[0]);
- if (getyn("Do you want to mortgage it? ") == 0)
- m(square[0]);
- return;
- }
- prop = getinp("Which property do you want to mortgage? ",names);
- if (prop == num_good)
- return;
- m(square[prop]);
- notify(cur_p);
- }
-}
-/*
- * This routine sets up the list of mortgageable property
- */
-set_mlist() {
-
- reg OWN *op;
-
- num_good = 0;
- for (op = cur_p->own_list; op; op = op->next)
- if (!op->sqr->desc->morg)
- if (op->sqr->type == PRPTY && op->sqr->desc->houses)
- got_houses++;
- else {
- names[num_good] = op->sqr->name;
- square[num_good++] = sqnum(op->sqr);
- }
- names[num_good++] = "done";
- names[num_good--] = 0;
- return num_good;
-}
-/*
- * This routine actually mortgages the property.
- */
-m(prop)
-reg int prop; {
-
- reg int price;
-
- price = board[prop].cost/2;
- board[prop].desc->morg = TRUE;
- printf("That got you $%d\n",price);
- cur_p->money += price;
-}
-/*
- * This routine is the command level repsponse to the unmortgage
- * command. It gets the list of mortgaged property and asks which are
- * to be unmortgaged.
- */
-unmortgage() {
-
- reg int prop;
-
- for (;;) {
- if (set_umlist() == 0) {
- printf("You don't have any mortgaged property.\n");
- return;
- }
- if (num_good == 1) {
- printf("Your only mortaged property is %s\n",names[0]);
- if (getyn("Do you want to unmortgage it? ") == 0)
- unm(square[0]);
- return;
- }
- prop = getinp("Which property do you want to unmortgage? ",names);
- if (prop == num_good)
- return;
- unm(square[prop]);
- }
-}
-/*
- * This routine sets up the list of mortgaged property
- */
-set_umlist() {
-
- reg OWN *op;
-
- num_good = 0;
- for (op = cur_p->own_list; op; op = op->next)
- if (op->sqr->desc->morg) {
- names[num_good] = op->sqr->name;
- square[num_good++] = sqnum(op->sqr);
- }
- names[num_good++] = "done";
- names[num_good--] = 0;
- return num_good;
-}
-/*
- * This routine actually unmortgages the property
- */
-unm(prop)
-reg int prop; {
-
- reg int price;
-
- price = board[prop].cost/2;
- board[prop].desc->morg = FALSE;
- price += price/10;
- printf("That cost you $%d\n",price);
- cur_p->money -= price;
- set_umlist();
-}
-/*
- * This routine forces the indebted player to fix his
- * financial woes.
- */
-force_morg() {
-
- told_em = fixing = TRUE;
- while (cur_p->money <= 0)
- fix_ex(getinp("How are you going to fix it up? ",morg_coms));
- fixing = FALSE;
-}
-/*
- * This routine is a special execute for the force_morg routine
- */
-fix_ex(com_num)
-reg int com_num; {
-
- told_em = FALSE;
- (*func[com_num])();
- notify();
-}
diff --git a/games/monop/pathnames.h b/games/monop/pathnames.h
deleted file mode 100644
index 60c0988..0000000
--- a/games/monop/pathnames.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)pathnames.h 8.1 (Berkeley) 5/31/93
- */
-
-#define _PATH_CARDS "/usr/share/games/cards.pck"
diff --git a/games/monop/print.c b/games/monop/print.c
deleted file mode 100644
index 121f79e..0000000
--- a/games/monop/print.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)print.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-static char buf[80], /* output buffer */
- *header = "Name Own Price Mg # Rent";
-
-/*
- * This routine prints out the current board
- */
-printboard() {
-
- reg int i;
-
- printf("%s\t%s\n", header, header);
- for (i = 0; i < N_SQRS/2; i++) {
- printsq(i, FALSE);
- putchar('\t');
- printsq(i+N_SQRS/2, TRUE);
- }
-}
-/*
- * This routine lists where each player is.
- */
-where() {
-
- reg int i;
- char *bsp;
-
- printf("%s Player\n", header);
- for (i = 0; i < num_play; i++) {
- printsq(play[i].loc, FALSE);
- printf(" %s (%d)", play[i].name, i+1);
- if (cur_p == &play[i])
- printf(" *");
- putchar('\n');
- }
-}
-/*
- * This routine prints out an individual square
- */
-printsq(sqn, eoln)
-int sqn;
-reg bool eoln; {
-
- reg int rnt;
- reg PROP *pp;
- reg SQUARE *sqp;
- int i;
-
- sqp = &board[sqn];
- printf("%-10.10s", sqp->name);
- switch (sqp->type) {
- case SAFE:
- case CC:
- case CHANCE:
- case INC_TAX:
- case GOTO_J:
- case LUX_TAX:
- case IN_JAIL:
-spec:
- if (!eoln)
- printf(" ");
- break;
- case PRPTY:
- pp = sqp->desc;
- if (sqp->owner < 0) {
- printf(" - %-8.8s %3d", pp->mon_desc->name, sqp->cost);
- if (!eoln)
- printf(" ");
- break;
- }
- printf(" %d %-8.8s %3d", sqp->owner+1, pp->mon_desc->name,
- sqp->cost);
- printmorg(sqp);
- if (pp->monop) {
- if (pp->houses < 5)
- if (pp->houses > 0)
- printf("%d %4d", pp->houses,
- pp->rent[pp->houses]);
- else
- printf("0 %4d", pp->rent[0] * 2);
- else
- printf("H %4d", pp->rent[5]);
- }
- else
- printf(" %4d", pp->rent[0]);
- break;
- case UTIL:
- if (sqp->owner < 0) {
- printf(" - 150");
- if (!eoln)
- printf(" ");
- break;
- }
- printf(" %d 150", sqp->owner+1);
- printmorg(sqp);
- printf("%d", play[sqp->owner].num_util);
- if (!eoln)
- printf(" ");
- break;
- case RR:
- if (sqp->owner < 0) {
- printf(" - Railroad 200");
- if (!eoln)
- printf(" ");
- break;
- }
- printf(" %d Railroad 200", sqp->owner+1);
- printmorg(sqp);
- rnt = 25;
- rnt <<= play[sqp->owner].num_rr - 1;
- printf("%d %4d", play[sqp->owner].num_rr, 25 << (play[sqp->owner].num_rr - 1));
- break;
- }
- if (eoln)
- putchar('\n');
-}
-/*
- * This routine prints out the mortgage flag.
- */
-printmorg(sqp)
-reg SQUARE *sqp; {
-
- if (sqp->desc->morg)
- printf(" * ");
- else
- printf(" ");
-}
-/*
- * This routine lists the holdings of the player given
- */
-printhold(pl)
-reg int pl; {
-
- reg OWN *op;
- reg PLAY *pp;
- char *bsp;
-
- pp = &play[pl];
- printf("%s's (%d) holdings (Total worth: $%d):\n", name_list[pl], pl+1,
- pp->money + prop_worth(pp));
- printf("\t$%d", pp->money);
- if (pp->num_gojf) {
- printf(", %d get-out-of-jail-free card", pp->num_gojf);
- if (pp->num_gojf > 1)
- putchar('s');
- }
- putchar('\n');
- if (pp->own_list) {
- printf("\t%s\n", header);
- for (op = pp->own_list; op; op = op->next) {
- putchar('\t');
- printsq(sqnum(op->sqr), TRUE);
- }
- }
-}
diff --git a/games/monop/prop.c b/games/monop/prop.c
deleted file mode 100644
index 0feb498..0000000
--- a/games/monop/prop.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)prop.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-extern char *calloc();
-
-/*
- * This routine deals with buying property, setting all the
- * appropriate flags.
- */
-buy(player, sqrp)
-reg int player;
-reg SQUARE *sqrp; {
-
- trading = FALSE;
- sqrp->owner = player;
- add_list(player, &(play[player].own_list), cur_p->loc);
-}
-/*
- * This routine adds an item to the list.
- */
-add_list(plr, head, op_sqr)
-int plr;
-OWN **head;
-int op_sqr; {
-
- reg int val;
- reg OWN *tp, *last_tp;
- MON *mp;
- OWN *op;
-
- op = (OWN *)calloc(1, sizeof (OWN));
- op->sqr = &board[op_sqr];
- val = value(op->sqr);
- last_tp = NULL;
- for (tp = *head; tp && value(tp->sqr) < val; tp = tp->next)
- if (val == value(tp->sqr)) {
- cfree(op);
- return;
- }
- else
- last_tp = tp;
- op->next = tp;
- if (last_tp != NULL)
- last_tp->next = op;
- else
- *head = op;
- if (!trading)
- set_ownlist(plr);
-}
-/*
- * This routine deletes property from the list.
- */
-del_list(plr, head, op_sqr)
-int plr;
-OWN **head;
-shrt op_sqr; {
-
- reg int i;
- reg OWN *op, *last_op;
-
- switch (board[op_sqr].type) {
- case PRPTY:
- board[op_sqr].desc->mon_desc->num_own--;
- break;
- case RR:
- play[plr].num_rr--;
- break;
- case UTIL:
- play[plr].num_util--;
- break;
- }
- last_op = NULL;
- for (op = *head; op; op = op->next)
- if (op->sqr == &board[op_sqr])
- break;
- else
- last_op = op;
- if (last_op == NULL)
- *head = op->next;
- else {
- last_op->next = op->next;
- cfree(op);
- }
-}
-/*
- * This routine calculates the value for sorting of the
- * given square.
- */
-value(sqp)
-reg SQUARE *sqp; {
-
- reg int sqr;
-
- sqr = sqnum(sqp);
- switch (sqp->type) {
- case SAFE:
- return 0;
- default: /* Specials, etc */
- return 1;
- case UTIL:
- if (sqr == 12)
- return 2;
- else
- return 3;
- case RR:
- return 4 + sqr/10;
- case PRPTY:
- return 8 + (sqp->desc) - prop;
- }
-}
-/*
- * This routine accepts bids for the current peice
- * of property.
- */
-bid() {
-
- static bool in[MAX_PL];
- reg int i, num_in, cur_max;
- char buf[80];
- int cur_bid;
-
- printf("\nSo it goes up for auction. Type your bid after your name\n");
- for (i = 0; i < num_play; i++)
- in[i] = TRUE;
- i = -1;
- cur_max = 0;
- num_in = num_play;
- while (num_in > 1 || (cur_max == 0 && num_in > 0)) {
- i = ++i % num_play;
- if (in[i]) {
- do {
- (void)sprintf(buf, "%s: ", name_list[i]);
- cur_bid = get_int(buf);
- if (cur_bid == 0) {
- in[i] = FALSE;
- if (--num_in == 0)
- break;
- }
- else if (cur_bid <= cur_max) {
- printf("You must bid higher than %d to stay in\n", cur_max);
- printf("(bid of 0 drops you out)\n");
- }
- } while (cur_bid != 0 && cur_bid <= cur_max);
- cur_max = (cur_bid ? cur_bid : cur_max);
- }
- }
- if (cur_max != 0) {
- while (!in[i])
- i = ++i % num_play;
- printf("It goes to %s (%d) for $%d\n",play[i].name,i+1,cur_max);
- buy(i, &board[cur_p->loc]);
- play[i].money -= cur_max;
- }
- else
- printf("Nobody seems to want it, so we'll leave it for later\n");
-}
-/*
- * This routine calculates the value of the property
- * of given player.
- */
-prop_worth(plp)
-reg PLAY *plp; {
-
- reg OWN *op;
- reg int worth;
-
- worth = 0;
- for (op = plp->own_list; op; op = op->next) {
- if (op->sqr->type == PRPTY && op->sqr->desc->monop)
- worth += op->sqr->desc->mon_desc->h_cost * 50 *
- op->sqr->desc->houses;
- worth += op->sqr->cost;
- }
- return worth;
-}
diff --git a/games/monop/prop.dat b/games/monop/prop.dat
deleted file mode 100644
index f9fc072..0000000
--- a/games/monop/prop.dat
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)prop.dat 5.4 (Berkeley) 5/31/93
- */
-
-/* morg monop square houses mon_desc rent */
-{0, 0, 1, 0, &mon[0], { 2, 10, 30, 90, 160, 250} },
-{0, 0, 3, 0, &mon[0], { 4, 20, 60, 180, 320, 450} },
-{0, 0, 6, 0, &mon[1], { 6, 30, 90, 270, 400, 550} },
-{0, 0, 7, 0, &mon[1], { 6, 30, 90, 270, 400, 550} },
-{0, 0, 9, 0, &mon[1], { 8, 40,100, 300, 450, 600} },
-{0, 0, 11, 0, &mon[2], {10, 50,150, 450, 625, 750} },
-{0, 0, 13, 0, &mon[2], {10, 50,150, 450, 625, 750} },
-{0, 0, 14, 0, &mon[2], {12, 60,180, 500, 700, 900} },
-{0, 0, 16, 0, &mon[3], {14, 70,200, 550, 750, 950} },
-{0, 0, 17, 0, &mon[3], {14, 70,200, 550, 750, 950} },
-{0, 0, 19, 0, &mon[3], {16, 80,220, 600, 800,1000} },
-{0, 0, 21, 0, &mon[4], {18, 90,250, 700, 875,1050} },
-{0, 0, 23, 0, &mon[4], {18, 90,250, 700, 875,1050} },
-{0, 0, 24, 0, &mon[4], {20,100,300, 750, 925,1100} },
-{0, 0, 26, 0, &mon[5], {22,110,330, 800, 975,1150} },
-{0, 0, 27, 0, &mon[5], {22,110,330, 800, 975,1150} },
-{0, 0, 29, 0, &mon[5], {24,120,360, 850,1025,1200} },
-{0, 0, 31, 0, &mon[6], {26,130,390, 900,1100,1275} },
-{0, 0, 32, 0, &mon[6], {26,130,390, 900,1100,1275} },
-{0, 0, 34, 0, &mon[6], {28,150,450,1000,1200,1400} },
-{0, 0, 37, 0, &mon[7], {35,175,500,1100,1300,1500} },
-{0, 0, 39, 0, &mon[7], {50,200,600,1400,1700,2000} }
diff --git a/games/monop/rent.c b/games/monop/rent.c
deleted file mode 100644
index 4954279..0000000
--- a/games/monop/rent.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)rent.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-/*
- * This routine has the player pay rent
- */
-rent(sqp)
-reg SQUARE *sqp; {
-
- reg int rnt;
- reg PROP *pp;
- PLAY *plp;
-
- plp = &play[sqp->owner];
- printf("Owned by %s\n", plp->name);
- if (sqp->desc->morg) {
- lucky("The thing is mortgaged. ");
- return;
- }
- switch (sqp->type) {
- case PRPTY:
- pp = sqp->desc;
- if (pp->monop)
- if (pp->houses == 0)
- printf("rent is %d\n", rnt=pp->rent[0] * 2);
- else if (pp->houses < 5)
- printf("with %d houses, rent is %d\n",
- pp->houses, rnt=pp->rent[pp->houses]);
- else
- printf("with a hotel, rent is %d\n",
- rnt=pp->rent[pp->houses]);
- else
- printf("rent is %d\n", rnt = pp->rent[0]);
- break;
- case RR:
- rnt = 25;
- rnt <<= (plp->num_rr - 1);
- if (spec)
- rnt <<= 1;
- printf("rent is %d\n", rnt);
- break;
- case UTIL:
- rnt = roll(2, 6);
- if (plp->num_util == 2 || spec) {
- printf("rent is 10 * roll (%d) = %d\n", rnt, rnt * 10);
- rnt *= 10;
- }
- else {
- printf("rent is 4 * roll (%d) = %d\n", rnt, rnt * 4);
- rnt *= 4;
- }
- break;
- }
- cur_p->money -= rnt;
- plp->money += rnt;
-}
diff --git a/games/monop/roll.c b/games/monop/roll.c
deleted file mode 100644
index 633dfea..0000000
--- a/games/monop/roll.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)roll.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-/*
- * This routine rolls ndie nside-sided dice.
- */
-
-# define reg register
-
-# if defined(pdp11)
-# define MAXRAND 32767L
-
-roll(ndie, nsides)
-int ndie, nsides; {
-
- reg long tot;
- reg unsigned n, r;
-
- tot = 0;
- n = ndie;
- while (n--)
- tot += rand();
- return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
-}
-
-# else
-
-roll(ndie, nsides)
-reg int ndie, nsides; {
-
- reg int tot, r;
- reg double num_sides;
-
- num_sides = nsides;
- tot = 0;
- while (ndie--)
- tot += (r = rand()) * (num_sides / 017777777777) + 1;
- return tot;
-}
-# endif
diff --git a/games/monop/spec.c b/games/monop/spec.c
deleted file mode 100644
index 958ce61..0000000
--- a/games/monop/spec.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)spec.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-static char *perc[] = {
- "10%", "ten percent", "%", "$200", "200", 0
- };
-
-inc_tax() { /* collect income tax */
-
- reg int worth, com_num;
-
- com_num = getinp("Do you wish to lose 10%% of your total worth or $200? ", perc);
- worth = cur_p->money + prop_worth(cur_p);
- printf("You were worth $%d", worth);
- worth /= 10;
- if (com_num > 2) {
- if (worth < 200)
- printf(". Good try, but not quite.\n");
- else if (worth > 200)
- lucky(".\nGood guess. ");
- cur_p->money -= 200;
- }
- else {
- printf(", so you pay $%d", worth);
- if (worth > 200)
- printf(" OUCH!!!!.\n");
- else if (worth < 200)
- lucky("\nGood guess. ");
- cur_p->money -= worth;
- }
- if (worth == 200)
- lucky("\nIt makes no difference! ");
-}
-goto_jail() { /* move player to jail */
-
- cur_p->loc = JAIL;
-}
-lux_tax() { /* landing on luxury tax */
-
- printf("You lose $75\n");
- cur_p->money -= 75;
-}
-cc() { /* draw community chest card */
-
- get_card(&CC_D);
-}
-chance() { /* draw chance card */
-
- get_card(&CH_D);
-}
diff --git a/games/monop/trade.c b/games/monop/trade.c
deleted file mode 100644
index 4c356a8..0000000
--- a/games/monop/trade.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)trade.c 8.1 (Berkeley) 5/31/93";
-#endif /* not lint */
-
-# include "monop.ext"
-
-struct trd_st { /* how much to give to other player */
- int trader; /* trader number */
- int cash; /* amount of cash */
- int gojf; /* # get-out-of-jail-free cards */
- OWN *prop_list; /* property list */
-};
-
-typedef struct trd_st TRADE;
-
-static char *list[MAX_PRP+2];
-
-static int used[MAX_PRP];
-
-static TRADE trades[2];
-
-trade() {
-
- reg int tradee, i;
-
- trading = TRUE;
- for (i = 0; i < 2; i++) {
- trades[i].cash = 0;
- trades[i].gojf = FALSE;
- trades[i].prop_list = NULL;
- }
-over:
- if (num_play == 1) {
- printf("There ain't no-one around to trade WITH!!\n");
- return;
- }
- if (num_play > 2) {
- tradee = getinp("Which player do you wish to trade with? ",
- name_list);
- if (tradee == num_play)
- return;
- if (tradee == player) {
- printf("You can't trade with yourself!\n");
- goto over;
- }
- }
- else
- tradee = 1 - player;
- get_list(0, player);
- get_list(1, tradee);
- if (getyn("Do you wish a summary? ") == 0)
- summate();
- if (getyn("Is the trade ok? ") == 0)
- do_trade();
-}
-/*
- * This routine gets the list of things to be trader for the
- * player, and puts in the structure given.
- */
-get_list(struct_no, play_no)
-int struct_no, play_no; {
-
- reg int sn, pn;
- reg PLAY *pp;
- int numin, prop, num_prp;
- OWN *op;
- TRADE *tp;
-
- for (numin = 0; numin < MAX_PRP; numin++)
- used[numin] = FALSE;
- sn = struct_no, pn = play_no;
- pp = &play[pn];
- tp = &trades[sn];
- tp->trader = pn;
- printf("player %s (%d):\n", pp->name, pn+1);
- if (pp->own_list) {
- numin = set_list(pp->own_list);
- for (num_prp = numin; num_prp; ) {
- prop = getinp("Which property do you wish to trade? ",
- list);
- if (prop == numin)
- break;
- else if (used[prop])
- printf("You've already allocated that.\n");
- else {
- num_prp--;
- used[prop] = TRUE;
- for (op = pp->own_list; prop--; op = op->next)
- continue;
- add_list(pn, &(tp->prop_list), sqnum(op->sqr));
- }
- }
- }
- if (pp->money > 0) {
- printf("You have $%d. ", pp->money);
- tp->cash = get_int("How much are you trading? ");
- }
- if (pp->num_gojf > 0) {
-once_more:
- printf("You have %d get-out-of-jail-free cards. ",pp->num_gojf);
- tp->gojf = get_int("How many are you trading? ");
- if (tp->gojf > pp->num_gojf) {
- printf("You don't have that many. Try again.\n");
- goto once_more;
- }
- }
-}
-/*
- * This routine sets up the list of tradable property.
- */
-set_list(the_list)
-reg OWN *the_list; {
-
- reg int i;
- reg OWN *op;
-
- i = 0;
- for (op = the_list; op; op = op->next)
- if (!used[i])
- list[i++] = op->sqr->name;
- list[i++] = "done";
- list[i--] = 0;
- return i;
-}
-/*
- * This routine summates the trade.
- */
-summate() {
-
- reg bool some;
- reg int i;
- reg TRADE *tp;
- OWN *op;
-
- for (i = 0; i < 2; i++) {
- tp = &trades[i];
- some = FALSE;
- printf("Player %s (%d) gives:\n", play[tp->trader].name,
- tp->trader+1);
- if (tp->cash > 0)
- printf("\t$%d\n", tp->cash), some++;
- if (tp->gojf > 0)
- printf("\t%d get-out-of-jail-free card(s)\n", tp->gojf),
- some++;
- if (tp->prop_list) {
- for (op = tp->prop_list; op; op = op->next)
- putchar('\t'), printsq(sqnum(op->sqr), TRUE);
- some++;
- }
- if (!some)
- printf("\t-- Nothing --\n");
- }
-}
-/*
- * This routine actually executes the trade.
- */
-do_trade() {
-
- move_em(&trades[0], &trades[1]);
- move_em(&trades[1], &trades[0]);
-}
-/*
- * This routine does a switch from one player to another
- */
-move_em(from, to)
-TRADE *from, *to; {
-
- reg PLAY *pl_fr, *pl_to;
- reg OWN *op;
-
- pl_fr = &play[from->trader];
- pl_to = &play[to->trader];
-
- pl_fr->money -= from->cash;
- pl_to->money += from->cash;
- pl_fr->num_gojf -= from->gojf;
- pl_to->num_gojf += from->gojf;
- for (op = from->prop_list; op; op = op->next) {
- add_list(to->trader, &(pl_to->own_list), sqnum(op->sqr));
- op->sqr->owner = to->trader;
- del_list(from->trader, &(pl_fr->own_list), sqnum(op->sqr));
- }
- set_ownlist(to->trader);
-}
-/*
- * This routine lets a player resign
- */
-resign() {
-
- reg int i, new_own;
- reg OWN *op;
- SQUARE *sqp;
-
- if (cur_p->money <= 0) {
- switch (board[cur_p->loc].type) {
- case UTIL:
- case RR:
- case PRPTY:
- new_own = board[cur_p->loc].owner;
- break;
- default: /* Chance, taxes, etc */
- new_own = num_play;
- break;
- }
- if (new_own == num_play)
- printf("You would resign to the bank\n");
- else
- printf("You would resign to %s\n", name_list[new_own]);
- }
- else if (num_play == 1) {
- new_own = num_play;
- printf("You would resign to the bank\n");
- }
- else {
- name_list[num_play] = "bank";
- do {
- new_own = getinp("Who do you wish to resign to? ",
- name_list);
- if (new_own == player)
- printf("You can't resign to yourself!!\n");
- } while (new_own == player);
- name_list[num_play] = "done";
- }
- if (getyn("Do you really want to resign? ", yn) != 0)
- return;
- if (num_play == 1) {
- printf("Then NOBODY wins (not even YOU!)\n");
- exit(0);
- }
- if (new_own < num_play) { /* resign to player */
- printf("resigning to player\n");
- trades[0].trader = new_own;
- trades[0].cash = trades[0].gojf = 0;
- trades[0].prop_list = NULL;
- trades[1].trader = player;
- trades[1].cash = cur_p->money > 0 ? cur_p->money : 0;
- trades[1].gojf = cur_p->num_gojf;
- trades[1].prop_list = cur_p->own_list;
- do_trade();
- }
- else { /* resign to bank */
- printf("resigning to bank\n");
- for (op = cur_p->own_list; op; op = op->next) {
- sqp = op->sqr;
- sqp->owner = -1;
- sqp->desc->morg = FALSE;
- if (sqp->type == PRPTY) {
- isnot_monop(sqp->desc->mon_desc);
- sqp->desc->houses = 0;
- }
- }
- if (cur_p->num_gojf)
- ret_card(cur_p);
- }
- for (i = player; i < num_play; i++) {
- name_list[i] = name_list[i+1];
- if (i + 1 < num_play)
- cpy_st(&play[i], &play[i+1], sizeof (PLAY));
- }
- name_list[num_play--] = 0;
- for (i = 0; i < N_SQRS; i++)
- if (board[i].owner > player)
- --board[i].owner;
- player = --player < 0 ? num_play - 1 : player;
- next_play();
- if (num_play < 2) {
- printf("\nThen %s WINS!!!!!\n", play[0].name);
- printhold(0);
- printf("That's a grand worth of $%d.\n",
- play[0].money+prop_worth(&play[0]));
- exit(0);
- }
-}
OpenPOWER on IntegriCloud