]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
New version from uunet.
authormycroft <mycroft@NetBSD.org>
Sat, 7 Aug 1993 08:27:53 +0000 (08:27 +0000)
committermycroft <mycroft@NetBSD.org>
Sat, 7 Aug 1993 08:27:53 +0000 (08:27 +0000)
monop/Makefile
monop/misc.c
monop/monop.6
monop/monop.def
monop/morg.c
monop/roll.c

index ebc1082557f4cf47d56f853c16662eeac6948015..488af7528ce8bb09ac8c706bd4f96a10879f0a10 100644 (file)
@@ -1,14 +1,18 @@
-#      from: @(#)Makefile      5.5 (Berkeley) 5/11/90
-#      $Id: Makefile,v 1.5 1993/08/01 05:45:00 mycroft Exp $
+#      from: @(#)Makefile      5.8 (Berkeley) 9/2/92
+#      $Id: Makefile,v 1.6 1993/08/07 08:27:53 mycroft Exp $
 
 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.0
+DPADD= ${LIBCOMPAT}
+LDADD= -lcompat
 HIDEGAME=hidegame
 CLEANFILES+=initdeck cards.pck
 
-all: cards.pck
+all: ${PROG} ${MAN6}
+
+monop: cards.pck
 
 cards.pck: initdeck
        ./initdeck ${.CURDIR}/cards.inp
@@ -17,7 +21,7 @@ initdeck: initdeck.c
        ${CC} ${CFLAGS} -o ${.TARGET} ${.CURDIR}/initdeck.c
 
 beforeinstall:
-       install ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 cards.pck \
+       install -c -o ${BINOWN} -g ${BINGRP} -m 444 cards.pck \
            ${DESTDIR}/usr/share/games
 
 .include <bsd.prog.mk>
index f031cad07cf81057e801d0665ba057c68178cb4f..114994e56ea4626f62699a4da7baa28486480f6a 100644 (file)
  */
 
 #ifndef lint
-/*static char sccsid[] = "from: @(#)misc.c     5.5 (Berkeley) 2/28/91";*/
-static char rcsid[] = "$Id: misc.c,v 1.2 1993/08/01 18:53:37 mycroft Exp $";
+/*static char sccsid[] = "from: @(#)misc.c     5.6 (Berkeley) 3/25/93";*/
+static char rcsid[] = "$Id: misc.c,v 1.3 1993/08/07 08:27:57 mycroft Exp $";
 #endif /* not lint */
 
 # include      "monop.ext"
 # include      <ctype.h>
 # include      <signal.h>
 
-# define       execsh(sh)      execl(sh, shell_name[roll(1, num_names)-1], 0)
-
-static char    *shell_def      = "/bin/csh",
-               *shell_name[]   = {
-                       ".Hi Mom!",
-                       ".Kick Me",
-                       ".I'm really the next process down",
-                       ".Hi Kids!",
-                       ".This space for rent",
-                       ".Singin' in the rain....",
-                       ".I am but a Cog in the Wheel of Life",
-                       ".Look out!!! Behind you!!!!!",
-                       ".Looking for a good time, sailor?",
-                       ".I don't get NO respect...",
-                       ".Augghh!  You peeked!"
-               };
-
-static int     num_names       = sizeof shell_name / sizeof (char *);;
-
-char   *shell_in();
-
 /*
  *     This routine executes a truncated set of commands until a
  * "yes or "no" answer is gotten.
@@ -292,69 +271,3 @@ reg int    *s1, *s2, size; {
        while (size--)
                *s1++ = *s2++;
 }
-/*
- *     This routine forks off a shell.  It uses the users login shell
- */
-shell_out() {
-
-       static char     *shell = NULL;
-
-       printline();
-       if (shell == NULL)
-               shell = shell_in();
-       fflush(stdout);
-       if (!fork()) {
-               signal(SIGINT, SIG_DFL);
-               execsh(shell);
-       }
-       ignoresigs();
-       wait();
-       resetsigs();
-       putchar('\n');
-       printline();
-}
-/*
- *     This routine looks up the users login shell
- */
-# include      <sys/types.h>
-# include      <pwd.h>
-
-char           *getenv();
-
-char *
-shell_in() {
-
-       reg struct passwd       *pp;
-       reg char                *sp;
-
-       if ((sp = getenv("SHELL")) == NULL) {
-               pp = getpwuid(getuid());
-               if (pp->pw_shell[0] != '\0')
-                       return pp->pw_shell;
-               else
-                       return shell_def;
-               /*return (*(pp->pw_shell) != '\0' ? pp->pw_shell : shell_def);*/
-       }
-       return sp;
-}
-/*
- *     This routine sets things up to ignore all the signals.
- */
-ignoresigs() {
-
-       reg int i;
-
-       for (i = 0; i < NSIG; i++)
-               signal(i, SIG_IGN);
-}
-/*
- *     This routine sets up things as they were before.
- */
-resetsigs() {
-
-       reg int i;
-
-       for (i = 0; i < NSIG; i++)
-               signal(i, SIG_DFL);
-       signal(SIGINT, quit);
-}
index 768ab3cb3ddb17def7f0f4f4bca040c4aab4b6e5..be3fea652b545debc7dc9eb189fd459d4885f25d 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    from: @(#)monop.6       6.4 (Berkeley) 6/23/90
-.\"    $Id: monop.6,v 1.3 1993/08/05 17:13:23 jtc Exp $
+.\"    from: @(#)monop.6       6.5 (Berkeley) 3/25/93
+.\"    $Id: monop.6,v 1.4 1993/08/07 08:27:59 mycroft Exp $
 .\"
-.Dd June 23, 1990
-.Dd MONOP 6
-.Os
-.Sh NAME
-.Nm monop
-.Nd Monopoly game
-.Sh SYNOPSIS
-.Nm /usr/games/monop
-.Op Ar file
-.Sh DESCRIPTION
-.Nm Monop
+.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.
-.Nm
+.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 
-.Dq fix the problem ,
-.Em i.e. ,
+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
+.PP
 Any time that the response to a question is a
-.Em string ,
-e.g., a name, place or person, you can type 
-.Sq Ic ?
-to get a list of valid answers.
+.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.
-.Pp
-.Em A Summary of Commands :
-.Bl -tag -width item
-.It Ic quit
+.Sc
+.IR "A Summary of Commands" :
+.Cm quit
 quit game: This allows you to quit the game.  It asks you if you're sure.
-.It Ic print
+.Cm print
 print board: This prints out the current board.
 The columns have the following meanings (column headings are the same for the
-.Ic where ,
-.Ic own holdings  ,
+.BR where ,
+.BR "own holdings" ,
 and
-.Ic holdings
+.B holdings
 commands):
-.Pp
-.Bl -tag -width indent -compact
-.It Name
+.PP
+.RS 10
+.TP "\w'Name\ \ 'u"
+Name
 The first ten characters of the name of the square
-.It Own
-The 
-.Em number
-of the owner of the property.
-.It Price
+.TP
+Own
+The \fInumber\fR of the owner of the property.
+.TP
+Price
 The cost of the property (if any)
-.It Mg
-This field has a 
-.Sq *
-in it if the property is mortgaged
-.It \&#
+.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.
-.It Rent
+.TP
+Rent
 Current rent on the property.  If it is not owned, there is no rent.
-.El
-.It Ic where
+.RE
+.Cm where
 where players are: Tells you where all the players are.
 A `*' indicates the current player.
-.It Ic own holdings
+.Cm "own\ holdings"
 List your own holdings,
-.Em i.e. ,
+.IR i.e. ,
 money, get-out-of-jail-free cards, and property.
-.It Ic holdings
+.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 
-.Sq Ic done .
-.It Ic shell
-shell escape: Escape to a shell.  When the shell dies,
-the program continues where you left off.
-.It Ic mortgage
+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.
-.It Ic unmortgage
+.Cm unmortgage
 unmortgage property:
 Unmortgage mortgaged property.
-.It Ic buy
+.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.
@@ -132,56 +137,53 @@ 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.
-.It Ic sell
+.Cm sell
 sell houses:
 Sets up a list of monopolies from which you can sell houses.
 It operates in an analogous manner to
-.Ic buy.
-.It Ic card
+.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.
-.It Ic pay
+.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.
-.It Ic trade
+.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.
-.It Ic resign
+.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.
-.It Ic save
+.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
-.Nm monop
+.I monop
 command, or by using the
-.Ic restore
+.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.
-.It Ic restore
+.Cm restore
 restore game:
 Read in a previously saved game from a file.
 It leaves the file intact.
-.It Ic roll
+.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
-.Ic roll .
-.El
-.Sh AUTHOR
+.IR roll .
+.Ec
+.SH AUTHOR
 Ken Arnold
-.Sh FILES
-.Bl -tag -width /usr/share/games/cards.pck -compact
-.It Pa /usr/share/games/cards.pck
-Chance and Community Chest cards
-.El
-.Sh BUGS
+.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.
index 27da9e728f56487461628b48142e2f46de277773..1e063e4ee70d07325f424ce24b0b029126e18dbe 100644 (file)
@@ -30,7 +30,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     @(#)monop.def   5.3 (Berkeley) 4/8/91
+ *     from: @(#)monop.def     5.4 (Berkeley) 3/25/93
+ *     $Id: monop.def,v 1.2 1993/08/07 08:28:03 mycroft Exp $
  */
 
 # include      "monop.h"
@@ -45,20 +46,20 @@ 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 */        "shell",        /*  5 */
-       "mortgage",     /*  6 */        "unmortgage",   /*  7 */
-       "buy houses",   /*  8 */        "sell houses",  /*  9 */
-       "card",         /* 10 */        "pay",          /* 11 */
-       "trade",        /* 12 */        "resign",       /* 13 */
-       "save",         /* 14 */        "restore",      /* 15 */
-       "roll",         /* 16 */        "",             /* 17 */
+       "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 */        "shell",        /*  7 */
+       "holdings",     /*  6 */
        0
        },
        *lucky_mes[]    = {     /* "got lucky" messages                 */
@@ -79,7 +80,7 @@ int   player,                 /* current player number                */
                                /* list of command functions            */
        buy_houses(), card(), do_move(), do_move(), list(), list_all(),
        mortgage(), pay(), printboard(), quit(), resign(), restore(),
-       rub(), save(), sell_houses(), shell_out(), trade(),
+       rub(), save(), sell_houses(), trade(),
        unmortgage(), where(),
        (*func[])()     = {     /* array of function calls for commands */
        quit,                   /* quit game            |*  0 *|        */
@@ -87,19 +88,18 @@ int player,                 /* current player number                */
        where,                  /* where players are    |*  2 *|        */
        list,                   /* own holdings         |*  3 *|        */
        list_all,               /* holdings list        |*  4 *|        */
-       shell_out,              /* shell                |*  5 *|        */
-       mortgage,               /* mortgage property    |*  6 *|        */
-       unmortgage,             /* unmortgage property  |*  7 *|        */
-       buy_houses,             /* buy houses           |*  8 *|        */
-       sell_houses,            /* sell houses          |*  9 *|        */
-       card,                   /* card for jail        |* 10 *|        */
-       pay,                    /* pay for jail         |* 11 *|        */
-       trade,                  /* trade                |* 12 *|        */
-       resign,                 /* resign               |* 13 *|        */
-       save,                   /* save game            |* 14 *|        */
-       restore,                /* restore game         |* 15 *|        */
-       do_move,                /* roll                 |* 16 *|        */
-       do_move                 /* ""                   |* 17 *|        */
+       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           */
index 4e25ba4ec878135c96d6f56bbd007fce3b4f5e3b..b54d56a0d2056f43cb9ead6088e4b1e36919b052 100644 (file)
@@ -32,8 +32,8 @@
  */
 
 #ifndef lint
-/*static char sccsid[] = "from: @(#)morg.c     5.3 (Berkeley) 6/1/90";*/
-static char rcsid[] = "$Id: morg.c,v 1.2 1993/08/01 18:53:34 mycroft Exp $";
+/*static char sccsid[] = "from: @(#)morg.c     5.4 (Berkeley) 3/25/93";*/
+static char rcsid[] = "$Id: morg.c,v 1.3 1993/08/07 08:28:05 mycroft Exp $";
 #endif /* not lint */
 
 # include      "monop.ext"
@@ -49,17 +49,16 @@ static char *names[MAX_PRP+2],
                        "where",        /*  2 */
                        "own holdings", /*  3 */
                        "holdings",     /*  4 */
-                       "shell",        /*  5 */
-                       "mortgage",     /*  6 */
-                       "unmortgage",   /*  7 */
-                       "buy",          /*  8 */
-                       "sell",         /*  9 */
-                       "card",         /* 10 */
-                       "pay",          /* 11 */
-                       "trade",        /* 12 */
-                       "resign",       /* 13 */
-                       "save game",    /* 14 */
-                       "restore game", /* 15 */
+                       "mortgage",     /*  5 */
+                       "unmortgage",   /*  6 */
+                       "buy",          /*  7 */
+                       "sell",         /*  8 */
+                       "card",         /*  9 */
+                       "pay",          /* 10 */
+                       "trade",        /* 11 */
+                       "resign",       /* 12 */
+                       "save game",    /* 13 */
+                       "restore game", /* 14 */
                        0
                };
 
index f0d24281c906fda6b345d1be721bc7b9c6ccb94d..5d01fe9c4cde41450eb26646139abf34e2100037 100644 (file)
  */
 
 #ifndef lint
-/*static char sccsid[] = "from: @(#)roll.c     5.5 (Berkeley) 6/1/90";*/
-static char rcsid[] = "$Id: roll.c,v 1.3 1993/08/01 18:53:31 mycroft Exp $";
+/*static char sccsid[] = "from: @(#)roll.c     5.6 (Berkeley) 9/29/92";*/
+static char rcsid[] = "$Id: roll.c,v 1.4 1993/08/07 08:28:06 mycroft Exp $";
 #endif /* not lint */
 
+#include <stdlib.h>
+
 /*
  *     This routine rolls ndie nside-sided dice.
  */
 
-#include <stdlib.h>
+# 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;
+}
 
-#define        reg     register
+# else
 
 roll(ndie, nsides)
 reg int        ndie, nsides; {
@@ -56,3 +74,4 @@ reg int       ndie, nsides; {
                tot += (r = rand()) * (num_sides / RAND_MAX) + 1;
        return tot;
 }
+# endif