games-request@tekred.TEK.COM (03/10/88)
Submitted by: John Gilmore <hoptoad.UUCP!gnu@cgl.ucsf.edu> Comp.sources.games: Volume 3, Issue 96 Archive-name: backgammon/Part03 #! /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 archive 3 (of 3)." # Contents: allow.c board.c check.c init.c odds.c one.c teach.c # tutor.c tutor.h # Wrapped by billr@saab on Wed Mar 9 09:37:15 1988 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f allow.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"allow.c\" else echo shar: Extracting \"allow.c\" \(1743 characters\) sed "s/^X//" >allow.c <<'END_OF_allow.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)allow.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xmovallow () { X X register int i, m, iold; X int r; X X if (d0) X swap; X m = (D0 == D1? 4: 2); X for (i = 0; i < 4; i++) X p[i] = bar; X i = iold = 0; X while (i < m) { X if (*offptr == 15) X break; X h[i] = 0; X if (board[bar]) { X if (i == 1 || m == 4) X g[i] = bar+cturn*D1; X else X g[i] = bar+cturn*D0; X if (r = makmove(i)) { X if (d0 || m == 4) X break; X swap; X movback (i); X if (i > iold) X iold = i; X for (i = 0; i < 4; i++) X p[i] = bar; X i = 0; X } else X i++; X continue; X } X if ((p[i] += cturn) == home) { X if (i > iold) X iold = i; X if (m == 2 && i) { X movback(i); X p[i--] = bar; X if (p[i] != bar) X continue; X else X break; X } X if (d0 || m == 4) X break; X swap; X movback (i); X for (i = 0; i < 4; i++) X p[i] = bar; X i = 0; X continue; X } X if (i == 1 || m == 4) X g[i] = p[i]+cturn*D1; X else X g[i] = p[i]+cturn*D0; X if (g[i]*cturn > home) { X if (*offptr >= 0) X g[i] = home; X else X continue; X } X if (board[p[i]]*cturn > 0 && (r = makmove(i)) == 0) X i++; X } X movback (i); X return (iold > i? iold: i); X} END_OF_allow.c if test 1743 -ne `wc -c <allow.c`; then echo shar: \"allow.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f board.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"board.c\" else echo shar: Extracting \"board.c\" \(3045 characters\) sed "s/^X//" >board.c <<'END_OF_board.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)board.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xstatic int i, j, k; Xstatic char ln[60]; X Xwrboard () { X register int l; X static char bl[] = X "| | | |\n"; X static char sv[] = X "| | | | \n"; X X fixtty (noech); X clear(); X X if (tflag) { X fboard(); X goto lastline; X } X X writel ("_____________________________________________________\n"); X writel (bl); X strcpy (ln,bl); X for (j = 1; j < 50; j += 4) { X k = j/4+(j > 24? 12: 13); X ln[j+1] = k%10+'0'; X ln[j] = k/10+'0'; X if (j == 21) X j += 4; X } X writel (ln); X for (i = 0; i < 5; i++) { X strcpy (ln,sv); X for (j = 1; j < 50; j += 4) { X k = j/4+(j > 24? 12: 13); X wrbsub (); X if (j == 21) X j += 4; X } X if (-board[25] > i) X ln[26] = 'w'; X if (-board[25] > i+5) X ln[25] = 'w'; X if (-board[25] > i+10) X ln[27] = 'w'; X l = 53; X if (off[1] > i || (off[1] < 0 && off[1]+15 > i)) { X ln[54] = 'r'; X l = 55; X } X if (off[1] > i+5 || (off[1] < 0 && off[1]+15 > i+5)) { X ln[55] = 'r'; X l = 56; X } X if (off[1] > i+10 || (off[1] < 0 && off[1]+15 > i+10)) { X ln[56] = 'r'; X l = 57; X } X ln[l++] = '\n'; X ln[l] = '\0'; X writel (ln); X } X strcpy (ln,bl); X ln[25] = 'B'; X ln[26] = 'A'; X ln[27] = 'R'; X writel (ln); X strcpy (ln,sv); X for (i = 4; i > -1; i--) { X for (j = 1; j < 50; j += 4) { X k = ((j > 24? 53: 49)-j)/4; X wrbsub(); X if (j == 21) X j += 4; X } X if (board[0] > i) X ln[26] = 'r'; X if (board[0] > i+5) X ln[25] = 'r'; X if (board[0] > i+10) X ln[27] = 'r'; X l = 53; X if (off[0] > i || (off[0] < 0 && off[0]+15 > i)) { X ln[54] = 'w'; X l = 55; X } X if (off[0] > i+5 || (off[0] < 0 && off[0]+15 > i+5)) { X ln[55] = 'w'; X l = 56; X } X if (off[0] > i+10 || (off[0] < 0 && off[0]+15 > i+10)) { X ln[56] = 'w'; X l = 57; X } X ln[l++] = '\n'; X ln[l] = '\0'; X writel (ln); X } X strcpy (ln,bl); X for (j = 1; j < 50; j += 4) { X k = ((j > 24? 53: 49)-j)/4; X ln[j+1] = k%10+'0'; X if (k > 9) X ln[j] = k/10+'0'; X if (j == 21) X j += 4; X } X writel (ln); X writel ("|_______________________|___|_______________________|\n"); X Xlastline: X gwrite (); X if (tflag) X curmove (18,0); X else { X writec ('\n'); X writec ('\n'); X } X fixtty(raw); X} X Xwrbsub () { X register int m; X register char d; X X if (board[k] > 0) { X m = board[k]; X d = 'r'; X } else { X m = -board[k]; X d = 'w'; X } X if (m>i) X ln[j+1] = d; X if (m>i+5) X ln[j] = d; X if (m>i+10) X ln[j+2] = d; X} END_OF_board.c if test 3045 -ne `wc -c <board.c`; then echo shar: \"board.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f check.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"check.c\" else echo shar: Extracting \"check.c\" \(2356 characters\) sed "s/^X//" >check.c <<'END_OF_check.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)check.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xgetmove () { X register int i, c; X X c = 0; X for (;;) { X i = checkmove(c); X X switch (i) { X case -1: X if (movokay(mvlim)) { X if (tflag) X curmove (20,0); X else X writec ('\n'); X for (i = 0; i < mvlim; i++) X if (h[i]) X wrhit(g[i]); X nexturn(); X if (*offopp == 15) X cturn *= -2; X if (tflag && pnum) X bflag = pnum; X return; X } X X case -4: X case 0: X if (tflag) X refresh(); X if (i != 0 && i != -4) X break; X if (tflag) X curmove (20,0); X else X writec ('\n'); X writel (*Colorptr); X if (i == -4) X writel (" must make "); X else X writel (" can only make "); X writec (mvlim+'0'); X writel (" move"); X if (mvlim > 1) X writec ('s'); X writec ('.'); X writec ('\n'); X break; X X case -3: X if (quit()) X return; X } X X if (! tflag) X proll (); X else { X curmove (cturn == -1? 18: 19,39); X cline (); X c = -1; X } X } X} X Xmovokay (mv) Xregister int mv; X X{ X register int i, m; X X if (d0) X swap; X X for (i = 0; i < mv; i++) { X X if (p[i] == g[i]) { X moverr (i); X curmove (20,0); X writel ("Attempt to move to same location.\n"); X return (0); X } X X if (cturn*(g[i]-p[i]) < 0) { X moverr (i); X curmove (20,0); X writel ("Backwards move.\n"); X return (0); X } X X if (abs(board[bar]) && p[i] != bar) { X moverr (i); X curmove (20,0); X writel ("Men still on bar.\n"); X return (0); X } X X if ( (m = makmove(i)) ) { X moverr (i); X switch (m) { X X case 1: X writel ("Move not rolled.\n"); X break; X X case 2: X writel ("Bad starting position.\n"); X break; X X case 3: X writel ("Destination occupied.\n"); X break; X X case 4: X writel ("Can't remove men yet.\n"); X } X return (0); X } X } X return (1); X} END_OF_check.c if test 2356 -ne `wc -c <check.c`; then echo shar: \"check.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f init.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"init.c\" else echo shar: Extracting \"init.c\" \(1440 characters\) sed "s/^X//" >init.c <<'END_OF_init.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)init.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include <sgtty.h> X X/* X * variable initialization. X */ X X /* name of executable object programs */ Xchar EXEC[] = "/usr/games/backgammon"; Xchar TEACH[] = "/usr/games/teachgammon"; X Xint pnum = 2; /* color of player: X -1 = white X 1 = red X 0 = both X 2 = not yet init'ed */ Xint acnt = 0; /* length of args */ Xint aflag = 1; /* flag to ask for rules or instructions */ Xint bflag = 0; /* flag for automatic board printing */ Xint cflag = 0; /* case conversion flag */ Xint hflag = 1; /* flag for cleaning screen */ Xint mflag = 0; /* backgammon flag */ Xint raflag = 0; /* 'roll again' flag for recovered game */ Xint rflag = 0; /* recovered game flag */ Xint tflag = 0; /* cursor addressing flag */ Xint iroll = 0; /* special flag for inputting rolls */ Xint rfl = 0; X Xchar *color[] = {"White","Red","white","red"}; END_OF_init.c if test 1440 -ne `wc -c <init.c`; then echo shar: \"init.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f odds.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"odds.c\" else echo shar: Extracting \"odds.c\" \(1912 characters\) sed "s/^X//" >odds.c <<'END_OF_odds.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)odds.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xodds (r1,r2,val) Xregister int r1; Xint r2, val; X{ X register int i, j; X X if (r1 == 0) { X for (i = 0; i < 6; i++) X for (j = 0; j < 6; j++) X table[i][j] = 0; X return; X } else { X r1--; X if (r2-- == 0) X for (i = 0; i < 6; i++) { X table[i][r1] += val; X table[r1][i] += val; X } X else { X table[r2][r1] += val; X table[r1][r2] += val; X } X } X} X Xcount () { X register int i; X register int j; X register int total; X X total = 0; X for (i = 0; i < 6; i++) X for (j = 0; j < 6; j++) X total += table[i][j]; X return (total); X} X Xcanhit (i,c) Xint i, c; X X{ X register int j, k, b; X int a, d, diff, place, addon, menstuck; X X if (c == 0) X odds (0,0,0); X if (board[i] > 0) { X a = -1; X b = 25; X } else { X a = 1; X b = 0; X } X place = abs (25-b-i); X menstuck = abs (board[b]); X for (j = b; j != i; j += a) { X if (board[j]*a > 0) { X diff = abs(j-i); X addon = place+((board[j]*a > 2 || j == b)? 5: 0); X if ((j == b && menstuck == 1) && X (j != b && menstuck == 0)) X for (k = 1; k < diff; k++) X if (k < 7 && diff-k < 7 && X (board[i+a*k]*a >= 0 || X board[i+a*(diff-k)] >= 0)) X odds (k,diff-k,addon); X if ((j == b || menstuck < 2) && diff < 7) X odds (diff,0,addon); X } X if (j == b && menstuck > 1) X break; X } X return (count()); X} END_OF_odds.c if test 1912 -ne `wc -c <odds.c`; then echo shar: \"odds.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f one.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"one.c\" else echo shar: Extracting \"one.c\" \(2632 characters\) sed "s/^X//" >one.c <<'END_OF_one.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)one.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xmakmove (i) Xregister int i; X X{ X register int n, d; X int max; X X d = d0; X n = abs(g[i]-p[i]); X max = (*offptr < 0? 7: last()); X if (board[p[i]]*cturn <= 0) X return (checkd(d)+2); X if (g[i] != home && board[g[i]]*cturn < -1) X return (checkd(d)+3); X if (i || D0 == D1) { X if (n == max? D1 < n: D1 != n) X return (checkd(d)+1); X } else { X if (n == max? D0 < n && D1 < n: D0 != n && D1 != n) X return (checkd(d)+1); X if (n == max? D0 < n: D0 != n) { X if (d0) X return (checkd(d)+1); X swap; X } X } X if (g[i] == home && *offptr < 0) X return (checkd(d)+4); X h[i] = 0; X board[p[i]] -= cturn; X if (g[i] != home) { X if (board[g[i]] == -cturn) { X board[home] -= cturn; X board[g[i]] = 0; X h[i] = 1; X if (abs(bar-g[i]) < 7) { X (*inopp)--; X if (*offopp >= 0) X *offopp -= 15; X } X } X board[g[i]] += cturn; X if (abs(home-g[i]) < 7 && abs(home-p[i]) > 6) { X (*inptr)++; X if (*inptr+*offptr == 0) X *offptr += 15; X } X } else { X (*offptr)++; X (*inptr)--; X } X return (0); X} X Xmoverr (i) Xregister int i; X X{ X register int j; X X if (tflag) X curmove (20,0); X else X writec ('\n'); X writel ("Error: "); X for (j = 0; j <= i; j++) { X wrint (p[j]); X writec ('-'); X wrint (g[j]); X if (j < i) X writec (','); X } X writel ("... "); X movback (i); X} X X Xcheckd (d) Xregister int d; X X{ X if (d0 != d) X swap; X return (0); X} X Xlast () { X register int i; X X for (i = home-6*cturn; i != home; i += cturn) X if (board[i]*cturn > 0) X return (abs(home-i)); X} X Xmovback (i) Xregister int i; X X{ X register int j; X X for (j = i-1; j >= 0; j--) X backone(j); X} X Xbackone (i) Xregister int i; X X{ X board[p[i]] += cturn; X if (g[i] != home) { X board[g[i]] -= cturn; X if (abs(g[i]-home) < 7 && abs(p[i]-home) > 6) { X (*inptr)--; X if (*inptr+*offptr < 15 && *offptr >= 0) X *offptr -= 15; X } X } else { X (*offptr)--; X (*inptr)++; X } X if (h[i]) { X board[home] += cturn; X board[g[i]] = -cturn; X if (abs(bar-g[i]) < 7) { X (*inopp)++; X if (*inopp+*offopp == 0) X *offopp += 15; X } X } X} END_OF_one.c if test 2632 -ne `wc -c <one.c`; then echo shar: \"one.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f teach.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"teach.c\" else echo shar: Extracting \"teach.c\" \(2592 characters\) sed "s/^X//" >teach.c <<'END_OF_teach.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xchar copyright[] = X"@(#) Copyright (c) 1980 Regents of the University of California.\n\ X All rights reserved.\n"; X#endif /* not lint */ X X#ifndef lint Xstatic char sccsid[] = "@(#)teach.c 5.4 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X Xchar *hello[]; Xchar *list[]; Xchar *intro1[]; Xchar *intro2[]; Xchar *moves[]; Xchar *remove[]; Xchar *hits[]; Xchar *endgame[]; Xchar *doubl[]; Xchar *stragy[]; Xchar *prog[]; Xchar *lastch[]; X Xextern char ospeed; /* tty output speed for termlib */ X Xchar *helpm[] = { X "\nEnter a space or newline to roll, or", X " b to display the board", X " d to double", X " q to quit\n", X 0 X}; X Xchar *contin[] = { X "", X 0 X}; X Xmain (argc,argv) Xint argc; Xchar **argv; X X{ X register int i; X X signal (2,getout); X if (gtty (0,&tty) == -1) /* get old tty mode */ X errexit ("teachgammon(gtty)"); X old = tty.sg_flags; X#ifdef V7 X raw = ((noech = old & ~ECHO) | CBREAK); /* set up modes */ X#else X raw = ((noech = old & ~ECHO) | RAW); /* set up modes */ X#endif X ospeed = tty.sg_ospeed; /* for termlib */ X tflag = getcaps (getenv ("TERM")); X#ifdef V7 X while (*++argv != 0) X#else X while (*++argv != -1) X#endif X getarg (&argv); X if (tflag) { X noech &= ~(CRMOD|XTABS); X raw &= ~(CRMOD|XTABS); X clear(); X } X text (hello); X text (list); X i = text (contin); X if (i == 0) X i = 2; X init(); X while (i) X switch (i) { X X case 1: X leave(); X X case 2: X if (i = text(intro1)) X break; X wrboard(); X if (i = text(intro2)) X break; X X case 3: X if (i = text(moves)) X break; X X case 4: X if (i = text(remove)) X break; X X case 5: X if (i = text(hits)) X break; X X case 6: X if (i = text(endgame)) X break; X X case 7: X if (i = text(doubl)) X break; X X case 8: X if (i = text(stragy)) X break; X X case 9: X if (i = text(prog)) X break; X X case 10: X if (i = text(lastch)) X break; X } X tutor(); X} X Xleave() { X if (tflag) X clear(); X else X writec ('\n'); X fixtty(old); X execl (EXEC,"backgammon",args,"n",0); X writel ("Help! Backgammon program is missing\007!!\n"); X exit (-1); X} END_OF_teach.c if test 2592 -ne `wc -c <teach.c`; then echo shar: \"teach.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f tutor.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"tutor.c\" else echo shar: Extracting \"tutor.c\" \(2414 characters\) sed "s/^X//" >tutor.c <<'END_OF_tutor.c' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X */ X X#ifndef lint Xstatic char sccsid[] = "@(#)tutor.c 5.2 (Berkeley) 2/16/88"; X#endif /* not lint */ X X#include "back.h" X#include "tutor.h" X Xextern int maxmoves; Xextern char *finis[]; X Xextern struct situatn test[]; X Xstatic char better[] = "That is a legal move, but there is a better one.\n"; X Xtutor () { X register int i, j; X X i = 0; X begscr = 18; X cturn = -1; X home = 0; X bar = 25; X inptr = &in[0]; X inopp = &in[1]; X offptr = &off[0]; X offopp = &off[1]; X Colorptr = &color[0]; X colorptr = &color[2]; X colen = 5; X wrboard(); X X while (1) { X if (! brdeq(test[i].brd,board)) { X if (tflag && curr == 23) X curmove (18,0); X writel (better); X nexturn(); X movback (mvlim); X if (tflag) { X refresh(); X clrest (); X } X if ((! tflag) || curr == 19) { X proll(); X writec ('\t'); X } X else X curmove (curr > 19? curr-2: curr+4,25); X getmove(); X if (cturn == 0) X leave(); X continue; X } X if (tflag) X curmove (18,0); X text (*test[i].com); X if (! tflag) X writec ('\n'); X if (i == maxmoves) X break; X D0 = test[i].roll1; X D1 = test[i].roll2; X d0 = 0; X mvlim = 0; X for (j = 0; j < 4; j++) { X if (test[i].mp[j] == test[i].mg[j]) X break; X p[j] = test[i].mp[j]; X g[j] = test[i].mg[j]; X mvlim++; X } X if (mvlim) X for (j = 0; j < mvlim; j++) X if (makmove(j)) X writel ("AARGH!!!\n"); X if (tflag) X refresh(); X nexturn(); X D0 = test[i].new1; X D1 = test[i].new2; X d0 = 0; X i++; X mvlim = movallow(); X if (mvlim) { X if (tflag) X clrest(); X proll(); X writec('\t'); X getmove(); X if (tflag) X refresh(); X if (cturn == 0) X leave(); X } X } X leave(); X} X Xclrest () { X register int r, c, j; X X r = curr; X c = curc; X for (j = r+1; j < 24; j++) { X curmove (j,0); X cline(); X } X curmove (r,c); X} X Xbrdeq (b1,b2) Xregister int *b1, *b2; X X{ X register int *e; X X e = b1+26; X while (b1 < e) X if (*b1++ != *b2++) X return(0); X return(1); X} END_OF_tutor.c if test 2414 -ne `wc -c <tutor.c`; then echo shar: \"tutor.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f tutor.h -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"tutor.h\" else echo shar: Extracting \"tutor.h\" \(674 characters\) sed "s/^X//" >tutor.h <<'END_OF_tutor.h' X/* X * Copyright (c) 1980 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X * X * @(#)tutor.h 5.2 (Berkeley) 2/16/88 X */ X Xstruct situatn { X int brd[26]; X int roll1; X int roll2; X int mp[4]; X int mg[4]; X int new1; X int new2; X char *(*com[8]); X}; END_OF_tutor.h if test 674 -ne `wc -c <tutor.h`; then echo shar: \"tutor.h\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of archive 3 \(of 3\). cp /dev/null ark3isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0