billr@saab.CNA.TEK.COM (Bill Randle) (09/20/89)
Submitted-by: Scott Turner <srt@lanai.cs.ucla.edu>
Posting-number: Volume 8, Issue 31
Archive-name: hotel/Patch1
Patch-To: hotel: Volume 7, Issue 15-16
[I applied the patch to my source without the -l option
(see below) and everything worked just fine. -br]
[[The following is the first "official" patch to Hotel. It fixes some
minor bugs and adds two new features:
(1) a -n option which allows the user to specify the number
of players on the command line and subsequently skip the
startup screens.
(2) a -i option ("informed") which keeps track on-screen of the
stock held by each player.
Apply this patch with the -l option. Due to some strangenesses, at least
one of the patches will fail without -l.
Enjoy!
-- Scott Turner]]
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: patches01
# Wrapped by billr@saab on Wed Sep 20 05:50:42 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patches01' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'patches01'\"
else
echo shar: Extracting \"'patches01'\" \(21075 characters\)
sed "s/^X//" >'patches01' <<'END_OF_FILE'
Xdiff -c Orig/comp.c ./comp.c
X*** Orig/comp.c Mon Sep 18 15:18:09 1989
X--- ./comp.c Mon Sep 18 10:12:23 1989
X***************
X*** 414,423 ****
X
X /* Figure the maximum you can trade. */
X
X! if ((int) players[p].shares[sunk]/2 > hotels[sunk].shares)
X maxtrade = hotels[sunk].shares * 2;
X else
X! maxtrade = players[p].shares[sunk];
X
X /* If game is old, trade all possible. */
X
X--- 414,423 ----
X
X /* Figure the maximum you can trade. */
X
X! if (players[p].shares[sunk]/2 > hotels[sunk].shares)
X maxtrade = hotels[sunk].shares * 2;
X else
X! maxtrade = ((int) players[p].shares[sunk]/2) * 2;
X
X /* If game is old, trade all possible. */
X
X***************
X*** 454,460 ****
X *
X */
X
X! *trade = randum(maxtrade);
X *sell = randum(players[p].shares[sunk] - *trade);
X return;
X
X--- 454,460 ----
X *
X */
X
X! *trade = (randum((int) maxtrade/2) * 2);
X *sell = randum(players[p].shares[sunk] - *trade);
X return;
X
Xdiff -c Orig/defs.h ./defs.h
X*** Orig/defs.h Mon Sep 18 15:18:18 1989
X--- ./defs.h Mon Sep 18 10:13:08 1989
X***************
X*** 105,107 ****
X--- 105,108 ----
X extern WINDOW *iowin;
X extern int debug; /* Debug flag */
X extern int human_player;
X+ extern int be_informed; /* Should humans be told about computer players? */
Xdiff -c Orig/help.c ./help.c
X*** Orig/help.c Mon Sep 18 15:18:20 1989
X--- ./help.c Mon Sep 18 15:12:44 1989
X***************
X*** 110,121 ****
X clear();
X printw("\nGeneral\n\n");
X printw("Most of the time, the 'q' key will quit the game and ^L will refresh\n");
X! printw("the screen. 'h' will usually give some help.\n");
X printw("\nCredits\n\n");
X! printw("Hotel was written by Scott R. Turner (srt@cs.ucla.edu). Special thanks\n");
X! printw("must go to Matthew Merzbacher (matthew@cs.ucla.edu) for help in debugging\n");
X! printw("and testing the various versions, and for helping me win the 1989 ACM\n");
X! printw("Scholastic Programming Championship.\n\n");
X printw("---Hit any key to continue---");
X refresh();
X ch = getch();
X--- 110,134 ----
X clear();
X printw("\nGeneral\n\n");
X printw("Most of the time, the 'q' key will quit the game and ^L will refresh\n");
X! printw("the screen. 'h' will usually give some help.\n\n");
X! printw("\nOptions\n\n");
X! printw("Hotel has two options: hotel [-i] [-n #].\n\n");
X! printw("The -i option turns on `information'. This changes the display so that\n");
X! printw("you are kept informed of who holds what stock. It makes the game a little\n");
X! printw("easier.\n\n");
X! printw("The -n option (followed by a number from 2 to 7) sets the number of\n");
X! printw("players. This will also skip the credit screen and the instructions.\n\n");
X! printw("---Hit any key to continue---");
X! refresh();
X! ch = getch();
X! clear();
X printw("\nCredits\n\n");
X! printw("Hotel was written by Scott R. Turner (srt@cs.ucla.edu). Bug fixes and some\n");
X! printw("new features have been contributed by Lex Mierop (lex@nrc.com), Carlton\n");
X! printw("B. Hommel (carlton@apollo.com) and Michael Urban (urban%rcc@rand.org).\n\n");
X! printw("Special thanks must go to Matthew Merzbacher (matthew@cs.ucla.edu) for\n");
X! printw("help in debugging and testing various versions, and for helping me\n");
X! printw("win the 1989 ACM Scholastic Programming Championship.\n\n");
X printw("---Hit any key to continue---");
X refresh();
X ch = getch();
Xdiff -c Orig/hotel.c ./hotel.c
X*** Orig/hotel.c Mon Sep 18 15:18:11 1989
X--- ./hotel.c Mon Sep 18 15:14:35 1989
X***************
X*** 49,54 ****
X--- 49,92 ----
X *
X * The main program and declarations for Hotel.
X *
X+ * Bug Fixes and Modifications
X+ *
X+ * From Lex Mierop(lex@nrc.com) (July 7, 1989)
X+ *
X+ * Fixes to two problems. First, the human player was not getting
X+ * informed of what the computer players were doing during merges.
X+ * This is clearly wrong, except that human players should not be
X+ * informed of the number of stocks remaining, unless the "be_informed"
X+ * option is on.
X+ *
X+ * Second, Lex discovered a bug in the liquidation routines - computer
X+ * players were sometimes getting gypped out of a stock due to a
X+ * rounding error.
X+ *
X+ * From Carlton B. Hommel <carlton@apollo.com> (July 21, 1989)
X+ *
X+ * In the original version of Hotel, the human player was not kept
X+ * informed of the shares held by computer opponents. He could, of
X+ * course, calculate this information by hand and keep track of it,
X+ * but the program did not track it for him. Carlton and others
X+ * thought this annoying, and so Carlton modified pcdisp.c to keep
X+ * track on the screen of all the stock. Personally, I think this
X+ * just shows a certain lack of character :-), but I've included this
X+ * patch (in a modified form) as a command-line option, -i.
X+ *
X+ * From Michael Urban <urban%rcc@rand.org> (Sept. 5, 1989)
X+ *
X+ * Michael discovered that *trade was uninitialized in human_liquidate,
X+ * which can cause obvious problems.
X+ *
X+ * From Scott R. Turner <srt@cs.ucla.edu> (9/18/1989)
X+ *
X+ * Added a command line option for the number of players, -n. If you
X+ * use -n you will skip over the title and instruction screens.
X+ *
X+ * Cleaned up the pcdisp code by removing the commented out stuff
X+ * from the old version. Fixed the makefile.
X+ *
X */
X
X #include "defs.h"
X***************
X*** 75,80 ****
X--- 113,119 ----
X
X int numplayers, numhotels, boardsize, numshares, numtiles, startcash;
X int turn, maxbuy, debug, pnum;
X+ int be_informed = 0;
X
X /* Externals */
X
X***************
X*** 113,121 ****
X };
X };
X
X! main ()
X {
X! int i,j,k,x,y,hotelchoice,played;
X int purchases[MAXHOTELS];
X extern long time();
X #ifdef UNIX
X--- 152,174 ----
X };
X };
X
X! /*
X! * Usage and exit.
X! *
X! */
X!
X! void usage()
X {
X! printf("Usage: hotel [-i] [-n #].");
X! exit(0);
X! };
X!
X!
X! main(argc,argv)
X! int argc;
X! char **argv;
X! {
X! int i,j,k,x,y,hotelchoice,played,argn;
X int purchases[MAXHOTELS];
X extern long time();
X #ifdef UNIX
X***************
X*** 145,150 ****
X--- 198,229 ----
X #endif
X
X /*
X+ * Options
X+ *
X+ * -i = be informed == what stocks do computer players hold?
X+ * -n = number of players
X+ *
X+ */
X+
X+ argn = 0;
X+ numplayers = 0;
X+ while (++argn < argc) {
X+ if (strlen(argv[argn]) != 2 || argv[argn][0] != '-') usage();
X+ switch(argv[argn][1]) {
X+ case 'i':
X+ be_informed = 1;
X+ break;
X+ case 'n':
X+ sscanf(argv[++argn],"%d",&numplayers);
X+ if (numplayers < 2 || numplayers > 7) usage();
X+ break;
X+ default:
X+ usage();
X+ exit(1);
X+ }
X+ };
X+
X+ /*
X Curses Initialization.
X */
X
X***************
X*** 373,378 ****
X--- 452,458 ----
X
X hotel_merge(x,y,p)
X int x,y,p;
X+
X {
X int adj[MAXHOTELS+1],shares[MAXHOTELS+1];
X int i, j, k, count, max, dup, winner, hot, maxhot;
X***************
X*** 473,478 ****
X--- 553,562 ----
X players[cp].cash += sell*share_cost(j);
X players[cp].shares[j] -= sell;
X hotels[j].shares += sell;
X+ printw("%s sold %d",
X+ players[cp].name, sell);
X+ } else {
X+ printw("%s sold 0",players[cp].name);
X };
X
X /* Trade as many as possible. */
X***************
X*** 484,495 ****
X hotels[j].shares += numtraded;
X players[cp].shares[maxhot] += round(numtraded / 2);
X hotels[maxhot].shares -= round(numtraded / 2);
X };
X
X /* Everything left gets held. */
X };
X-
X };
X
X /*
X * Merge all the chains other than the winner into the winner.
X--- 568,586 ----
X hotels[j].shares += numtraded;
X players[cp].shares[maxhot] += round(numtraded / 2);
X hotels[maxhot].shares -= round(numtraded / 2);
X+ printw(" and traded %d", numtraded);
X };
X
X /* Everything left gets held. */
X+ if (be_informed) {
X+ printw(" and held on to %d shares of %s.\n",
X+ players[cp].shares[j], hotels[j].name);
X+ } else {
X+ printw(" shares of %s.\n",hotels[j].name);
X+ };
X };
X };
X+ any_key();
X
X /*
X * Merge all the chains other than the winner into the winner.
Xdiff -c Orig/human.c ./human.c
X*** Orig/human.c Mon Sep 18 15:18:12 1989
X--- ./human.c Mon Sep 18 10:12:21 1989
X***************
X*** 235,240 ****
X--- 235,241 ----
X refresh();
X if(players[p].shares[sunk]) {
X *sell = MAXSHARES + 1;
X+ *trade = 0;
X while(*sell+*trade > players[p].shares[sunk]) {
X move((boardsize+5),0);
X clrtobot();
Xdiff -c Orig/init.c ./init.c
X*** Orig/init.c Mon Sep 18 15:18:13 1989
X--- ./init.c Mon Sep 18 14:59:47 1989
X***************
X*** 128,156 ****
X };
X
X /* Copyright Screen */
X! clear();
X! move(3,0);
X! printw(" H*O*T*E*L\n");
X! printw(" Copyright 1989 by Scott R. Turner\n");
X! refresh();
X! sleep(1);
X! clear();
X
X! /* Time to query the user. */
X
X! printw("Welcome to the game of Hotel.\n\n");
X! printw("Instructions? (Y/N) ");
X! refresh();
X! noecho();
X! crmode();
X! ch = getch();
X! if (ch == 'Y' || ch == 'y') help();
X! printw("\nHow many players? (2 to %d) ",MAXPLAYERS);
X! refresh();
X! numplayers = getnum(2,MAXPLAYERS);
X for(i=1;i<=numplayers;i++){
X players[i].strategy = 1;
X };
X human_player = randum(numplayers);
X players[human_player].strategy = 0;
X strcpy(players[human_player].name,"You");
X--- 128,160 ----
X };
X
X /* Copyright Screen */
X! if (!numplayers) {
X! clear();
X! move(3,0);
X! printw(" H*O*T*E*L\n");
X! printw(" Copyright 1989 by Scott R. Turner\n");
X! refresh();
X! sleep(1);
X! clear();
X
X! /* Time to query the user. */
X
X! printw("Welcome to the game of Hotel.\n\n");
X! printw("Instructions? (Y/N) ");
X! refresh();
X! noecho();
X! crmode();
X! ch = getch();
X! if (ch == 'Y' || ch == 'y') help();
X! printw("\nHow many players? (2 to %d) ",MAXPLAYERS);
X! refresh();
X! numplayers = getnum(2,MAXPLAYERS);
X! };
X!
X for(i=1;i<=numplayers;i++){
X players[i].strategy = 1;
X };
X+
X human_player = randum(numplayers);
X players[human_player].strategy = 0;
X strcpy(players[human_player].name,"You");
X***************
X*** 172,177 ****
X--- 176,183 ----
X break;
X };
X printw(" player.\n");
X+ noecho();
X+ crmode();
X any_key();
X clear();
X
Xdiff -c Orig/makefile ./makefile
X*** Orig/makefile Mon Sep 18 15:18:21 1989
X--- ./makefile Mon Sep 18 15:14:33 1989
X***************
X*** 1,7 ****
X # Makefile for Hotel
X
X! OBJECTS = hotel.o human.o comp.o init.o utils.o costs.o help.o my_wgets.o display.o
X! PCOBJECTS = hotel.obj human.obj comp.obj init.obj utils.obj costs.obj display.obj help.obj my_wgets.obj
X SOURCE = init.c utils.c hotel.c human.c costs.c comp.c help.c my_wgets.c
X CFLAGS = -DUNIX
X
X--- 1,7 ----
X # Makefile for Hotel
X
X! OBJECTS = hotel.o human.o comp.o init.o utils.o costs.o help.o my_wgets.o pcdisp.o
X! PCOBJECTS = hotel.obj human.obj comp.obj init.obj utils.obj costs.obj pcdisp.obj help.obj my_wgets.obj
X SOURCE = init.c utils.c hotel.c human.c costs.c comp.c help.c my_wgets.c
X CFLAGS = -DUNIX
X
X***************
X*** 20,26 ****
X hotel.2: hotel.c human.c init.c utils.c my_wgets.c my_wgets.h Notice
X shar hotel.c human.c init.c utils.c display.c my_wgets.c my_wgets.h Notice > hotel.2
X
X! display.obj: defs.h
X comp.c: defs.h
X hotel.obj: defs.h
X init.obj: defs.h
X--- 20,26 ----
X hotel.2: hotel.c human.c init.c utils.c my_wgets.c my_wgets.h Notice
X shar hotel.c human.c init.c utils.c display.c my_wgets.c my_wgets.h Notice > hotel.2
X
X! pcdisp.obj: defs.h
X comp.c: defs.h
X hotel.obj: defs.h
X init.obj: defs.h
X***************
X*** 29,35 ****
X costs.obj: defs.h
X help.obj: defs.h
X
X! display.o: defs.h
X comp.c: defs.h
X hotel.o: defs.h
X init.o: defs.h
X--- 29,35 ----
X costs.obj: defs.h
X help.obj: defs.h
X
X! pcdisp.o: defs.h
X comp.c: defs.h
X hotel.o: defs.h
X init.o: defs.h
Xdiff -c Orig/pcdisp.c ./pcdisp.c
X*** Orig/pcdisp.c Mon Sep 18 15:18:23 1989
X--- ./pcdisp.c Mon Sep 18 14:54:30 1989
X***************
X*** 97,103 ****
X print_board(p)
X int p;
X {
X! int i,j,tile,x,y;
X
X getyx(stdscr,y,x);
X tile = 1;
X--- 97,104 ----
X print_board(p)
X int p;
X {
X! int i,j,k,tile,x,y;
X! char buf[10];
X
X getyx(stdscr,y,x);
X tile = 1;
X***************
X*** 105,111 ****
X addch(DULCORNER);
X for(i=1;i<=boardsize;i++) {
X move(2,(i-1)*2+4);
X- /* addstr("MM"); */
X addch(DLINE);
X addch(DLINE);
X }
X--- 106,111 ----
X***************
X*** 112,129 ****
X move(2,boardsize*2+4);
X addch(DLINE);
X addch(DURCORNER);
X- /* addstr("M;"); */
X for(i=1;i<=boardsize;i++) {
X move(i+2,3);
X- /* addch(':'); */
X addch(DVERTICAL);
X for(j=1;j<=boardsize;j++) {
X move(i+2,(2 * j)+3);
X if (board[i][j] == UNUSED) {
X- /* addch('~'); */
X addch(BLOCK);
X } else if (board[i][j] == 0) {
X- /* addch('y'); */
X addch(POINT);
X } else if (board[i][j] == -p) {
X standout();
X--- 112,125 ----
X***************
X*** 130,157 ****
X addch('0' + tile++);
X standend();
X } else if (board[i][j] == UNPLAYABLE && debug) {
X! addch('*');
X } else if (board[i][j] < 0) {
X- /* addch('y'); */
X addch(POINT);
X } else
X addch(board[i][j] + 'A' - 1);
X };
X move(i+2,(boardsize*2+5));
X- /* addch(':'); */
X addch(DVERTICAL);
X };
X move(boardsize+3,3);
X- /* addch('H'); */
X addch(DLLCORNER);
X for(i=1;i<=boardsize;i++) {
X move(boardsize+3,(i-1)*2+4);
X- /* addstr("MM"); */
X addch(DLINE);
X addch(DLINE);
X }
X move(boardsize+3,boardsize*2+4);
X- /* addstr("M<"); */
X addch(DLINE);
X addch(DLRCORNER);
X
X--- 126,148 ----
X addch('0' + tile++);
X standend();
X } else if (board[i][j] == UNPLAYABLE && debug) {
X! addch('x');
X } else if (board[i][j] < 0) {
X addch(POINT);
X } else
X addch(board[i][j] + 'A' - 1);
X };
X move(i+2,(boardsize*2+5));
X addch(DVERTICAL);
X };
X move(boardsize+3,3);
X addch(DLLCORNER);
X for(i=1;i<=boardsize;i++) {
X move(boardsize+3,(i-1)*2+4);
X addch(DLINE);
X addch(DLINE);
X }
X move(boardsize+3,boardsize*2+4);
X addch(DLINE);
X addch(DLRCORNER);
X
X***************
X*** 158,208 ****
X /* Now do rhs info. */
X
X move(2,(boardsize*2+8));
X! printw("Hotel Cost Yours Available");
X! move(3,(boardsize*2+8));
X! for (i=1;i<=6;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=8;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=7;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=10;i++) addch(LINE);
X! /* printw("D D D D D D B D D D D D D D D B D D D D D D D B D D D D D D D D D D"); */
X for(i=1;i<=numhotels;i++) {
X! move(i+3,(boardsize*2+10));
X clrtoeol();
X addch(i+'A'-1);
X if(hotels[i].size > 0) {
X! move(i+3,(boardsize*2+17));
X! printw("$%d",share_cost(i));
X } else {
X! move(i+3,(boardsize*2+16));
X printw("($%d)",share_cost(i));
X };
X! if (players[p].shares[i] > 0) {
X! move(i+3,(boardsize*2+27));
X! printw("%d",players[p].shares[i]);
X };
X- move(i+3,(boardsize*2+36));
X- printw("%d",hotels[i].shares);
X- move(i+3,(boardsize*2+14));
X- /* addch('3'); */
X- addch(VERTICAL);
X- move(i+3,(boardsize*2+23));
X- /* addch('3'); */
X- addch(VERTICAL);
X- move(i+3,(boardsize*2+31));
X- /* addch('3'); */
X- addch(VERTICAL);
X };
X
X move(numhotels+6,(boardsize*2+18));
X clrtoeol();
X printw("Cash = $%d",players[p].cash);
X move(0,0);
X- /* printw("ZDDDDDDDDDDDDDDDDDDDDDDDDD 4 pHpOpTpEpLp C D D D D D D D D D D D D D D D D D D D D D D D D ?"); */
X addch(ULCORNER);
X for(i=1;i<=25;i++) addch(LINE);
X addch(LHORTEE); addch(' ');
X addch(TRIPLELINE); addch('H');
X addch(TRIPLELINE); addch('O');
X--- 149,298 ----
X /* Now do rhs info. */
X
X move(2,(boardsize*2+8));
X! if (be_informed) {
X! /*
X! * The top line: Hotel Cost Bank ... Player Names
X! *
X! */
X! printw("H Cost Bank ");
X! for (k=1; k<=numplayers; k++) {
X! sprintf(buf, "%-4.4s ", players[k].name);
X! if (k != p)
X! printw(buf);
X! else {
X! standout();
X! printw(buf);
X! standend();
X! }
X! }
X! /*
X! * The line under the title line.
X! *
X! */
X! move(3,(boardsize*2+8));
X! addch(LINE); /* A-G */
X! addch(LINETEE);
X! for (i=1;i<=6;i++) addch(LINE); /* Cost */
X! addch(LINETEE);
X! for (i=1;i<=4;i++) addch(LINE); /* Bank */
X! for (k=1; k<=numplayers; k++) { /* Players */
X! addch(LINETEE);
X! for (i=1;i<=4;i++) addch(LINE);
X! }
X! } else {
X! /*
X! * The title line, regular version.
X! *
X! */
X! printw("Hotel Cost Yours Available");
X! move(3,(boardsize*2+8));
X! for (i=1;i<=6;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=8;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=7;i++) addch(LINE);
X! addch(LINETEE);
X! for (i=1;i<=10;i++) addch(LINE);
X! };
X!
X! /*
X! * For each hotel, print some information on its stock and price.
X! * In the informed version, print everyone's holdings.
X! *
X! */
X for(i=1;i<=numhotels;i++) {
X! if (be_informed)
X! move(i+3,(boardsize*2+8));
X! else
X! move(i+3,(boardsize*2+10));
X clrtoeol();
X+ /*
X+ * The hotel initial
X+ *
X+ */
X addch(i+'A'-1);
X+ if (be_informed) addch(VERTICAL);
X+ /*
X+ * The price of the hotel, in parens if not active.
X+ *
X+ */
X if(hotels[i].size > 0) {
X! if (be_informed)
X! move(i+3,(boardsize*2+11));
X! else
X! move(i+3,(boardsize*2+17));
X! printw("$%d ",share_cost(i));
X! if (be_informed) addch(VERTICAL);
X } else {
X! if (be_informed)
X! move(i+3,(boardsize*2+10));
X! else
X! move(i+3,(boardsize*2+16));
X printw("($%d)",share_cost(i));
X+ if (be_informed) addch(VERTICAL);
X };
X! /*
X! * Stock information
X! *
X! */
X! if (be_informed) {
X! move(i+3,(boardsize*2+18));
X! /*
X! * The bank's shares
X! *
X! */
X! printw("%2d ",hotels[i].shares);
X! addch(VERTICAL);
X! /*
X! * Each player.
X! *
X! */
X! for (k=1; k<=numplayers; k++) { /* Players */
X! if (players[k].shares[i] > 0) {
X! move(i+3,(boardsize*2+23 + 5*(k-1) ));
X! printw("%2d ",players[k].shares[i]);
X! if (k != numplayers) addch(VERTICAL);
X! } else {
X! move(i+3,(boardsize*2+26 + 5*(k-1)));
X! if (k != numplayers) addch(VERTICAL);
X! }
X! }
X! } else {
X! /*
X! * Regular version, only player and bank.
X! *
X! */
X! if (players[p].shares[i] > 0) {
X! move(i+3,(boardsize*2+27));
X! printw("%d",players[p].shares[i]);
X! };
X! move(i+3,(boardsize*2+36));
X! printw("%d",hotels[i].shares);
X! move(i+3,(boardsize*2+14));
X! addch(VERTICAL);
X! move(i+3,(boardsize*2+23));
X! addch(VERTICAL);
X! move(i+3,(boardsize*2+31));
X! addch(VERTICAL);
X };
X };
X
X+ /*
X+ * Player's cash.
X+ *
X+ */
X move(numhotels+6,(boardsize*2+18));
X clrtoeol();
X printw("Cash = $%d",players[p].cash);
X+ /*
X+ * Exterior box. Size to fit if playing the informed version.
X+ *
X+ */
X move(0,0);
X addch(ULCORNER);
X for(i=1;i<=25;i++) addch(LINE);
X+ if (be_informed)
X+ for(i=1;i<numplayers;i++) addch(LINE);
X addch(LHORTEE); addch(' ');
X addch(TRIPLELINE); addch('H');
X addch(TRIPLELINE); addch('O');
X***************
X*** 211,229 ****
X addch(TRIPLELINE); addch('L');
X addch(' '); addch(RHORTEE);
X for(i=1;i<=25;i++) addch(LINE);
X addch(URCORNER);
X for(i=1;i<=(boardsize+3);i++) {
X move(i,0);
X- /* addch('3'); */
X addch(VERTICAL);
X move(i,65);
X! /* addch('3'); */
X addch(VERTICAL);
X };
X move((boardsize + 4),0);
X- /* printw("@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY"); */
X addch(LLCORNER);
X for(i=1;i<=64;i++) addch(LINE);
X addch(LRCORNER);
X move(y,x);
X refresh();
X--- 301,324 ----
X addch(TRIPLELINE); addch('L');
X addch(' '); addch(RHORTEE);
X for(i=1;i<=25;i++) addch(LINE);
X+ if (be_informed)
X+ for(i=1;i<numplayers;i++) addch(LINE);
X addch(URCORNER);
X for(i=1;i<=(boardsize+3);i++) {
X move(i,0);
X addch(VERTICAL);
X move(i,65);
X! if (be_informed) move(i,65+2*(numplayers-1));
X addch(VERTICAL);
X };
X move((boardsize + 4),0);
X addch(LLCORNER);
X for(i=1;i<=64;i++) addch(LINE);
X+ if (be_informed)
X+ for (i=1;i<numplayers;i++) {
X+ addch(LINE);
X+ addch(LINE);
X+ };
X addch(LRCORNER);
X move(y,x);
X refresh();
X
END_OF_FILE
if test 21075 -ne `wc -c <'patches01'`; then
echo shar: \"'patches01'\" unpacked with wrong size!
fi
# end of 'patches01'
fi
echo shar: End of shell archive.
exit 0