diff options
author | lukem <lukem@NetBSD.org> | 1997-10-12 01:49:24 +0000 |
---|---|---|
committer | lukem <lukem@NetBSD.org> | 1997-10-12 01:49:24 +0000 |
commit | 80379c039e586e212d931ae2ab9e91611c6ac5e9 (patch) | |
tree | 4b0749018840f88d2637e20429c0b20402ddb59f /snake/snake/snake.c | |
parent | e2d4f36cd909cf60f33ecfef8b6fb02293e22c59 (diff) | |
download | bsdgames-darwin-80379c039e586e212d931ae2ab9e91611c6ac5e9.tar.gz bsdgames-darwin-80379c039e586e212d931ae2ab9e91611c6ac5e9.tar.zst bsdgames-darwin-80379c039e586e212d931ae2ab9e91611c6ac5e9.zip |
WARNSify, KNFify
Diffstat (limited to 'snake/snake/snake.c')
-rw-r--r-- | snake/snake/snake.c | 656 |
1 files changed, 353 insertions, 303 deletions
diff --git a/snake/snake/snake.c b/snake/snake/snake.c index db69aefa..eaa30b81 100644 --- a/snake/snake/snake.c +++ b/snake/snake/snake.c @@ -1,4 +1,4 @@ -/* $NetBSD: snake.c,v 1.8 1995/04/29 00:06:41 mycroft Exp $ */ +/* $NetBSD: snake.c,v 1.9 1997/10/12 01:49:28 lukem Exp $ */ /* * Copyright (c) 1980, 1993 @@ -33,19 +33,19 @@ * SUCH DAMAGE. */ +#include <sys/cdefs.h> #ifndef lint -static char copyright[] = -"@(#) Copyright (c) 1980, 1993\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ +__COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\ + The Regents of the University of California. All rights reserved.\n"); +#endif /* not lint */ #ifndef lint #if 0 static char sccsid[] = "@(#)snake.c 8.2 (Berkeley) 1/7/94"; #else -static char rcsid[] = "$NetBSD: snake.c,v 1.8 1995/04/29 00:06:41 mycroft Exp $"; +__RCSID("$NetBSD: snake.c,v 1.9 1997/10/12 01:49:28 lukem Exp $"); #endif -#endif /* not lint */ +#endif /* not lint */ /* * snake - crt hack game. @@ -65,11 +65,12 @@ static char rcsid[] = "$NetBSD: snake.c,v 1.8 1995/04/29 00:06:41 mycroft Exp $" #include <pwd.h> #include <stdlib.h> #include <time.h> +#include <unistd.h> #include "snake.h" #include "pathnames.h" -#define PENALTY 10 /* % penalty for invoking spacewarp */ +#define PENALTY 10 /* % penalty for invoking spacewarp */ #define EOT '\004' #define LF '\n' @@ -88,32 +89,34 @@ struct point money; struct point finish; struct point snake[6]; -int loot, penalty; -int long tl, tm=0L; -int moves; -char stri[BSIZE]; -char *p; -char ch, savec; -char *kl, *kr, *ku, *kd; -int fast=1; -int repeat=1; -time_t tv; -char *tn; - -main(argc,argv) -int argc; -char **argv; +int loot, penalty; +int long tl, tm = 0L; +int moves; +char stri[BSIZE]; +char *p; +char ch, savec; +char *kl, *kr, *ku, *kd; +int fast = 1; +int repeat = 1; +time_t tv; +char *tn; + +int main __P((int, char **)); + +int +main(argc, argv) + int argc; + char **argv; { extern char *optarg; extern int optind; - int ch, i, j, k; - void stop(); + int ch, i; - (void)time(&tv); - srandom((int)tv); + (void) time(&tv); + srandom((int) tv); - while ((ch = getopt(argc, argv, "l:w:")) != EOF) - switch((char)ch) { + while ((ch = getopt(argc, argv, "l:w:")) != -1) + switch ((char) ch) { #ifdef notdef case 'd': tv = atol(optarg); @@ -140,7 +143,6 @@ char **argv; pr("snake: screen too small for a fair game.\n"); exit(1); } - /* * chunk is the amount of money the user gets for each $. * The formula below tries to be fair for various screen sizes. @@ -154,7 +156,8 @@ char **argv; * smaller than 4x4 because there is a 3x3 game where you can win * an infinite amount of money. */ - if (i < 12) i = 12; /* otherwise it isn't fair */ + if (i < 12) + i = 12; /* otherwise it isn't fair */ /* * Compensate for border. This really changes the game since * the screen is two squares smaller but we want the default @@ -162,45 +165,51 @@ char **argv; * much anyway. */ i += 2; - chunk = (675.0 / (i+6)) + 2.5; /* min screen edge */ + chunk = (675.0 / (i + 6)) + 2.5; /* min screen edge */ - signal (SIGINT, stop); - putpad(TI); /* String to begin programs that use cm */ - putpad(KS); /* Put terminal in keypad transmit mode */ + signal(SIGINT, stop); + putpad(TI); /* String to begin programs that use cm */ + putpad(KS); /* Put terminal in keypad transmit mode */ snrand(&finish); snrand(&you); snrand(&money); snrand(&snake[0]); - if (ospeed < 9600 || ((! CM) && (! TA))) fast=0; - for(i=1;i<6;i++) - chase (&snake[i], &snake[i-1]); + if (ospeed < 9600 || ((!CM) && (!TA))) + fast = 0; + for (i = 1; i < 6; i++) + chase(&snake[i], &snake[i - 1]); setup(); mainloop(); + /* NOTREACHED */ + return (0); } /* Main command loop */ +void mainloop() { - int j, k; + int j, k; for (;;) { - int c,lastc,match; + int c, lastc, match; + lastc = 0; move(&you); fflush(stdout); if (((c = getchar() & 0177) <= '9') && (c >= '0')) { - ungetc(c,stdin); - j = scanf("%d",&repeat); + ungetc(c, stdin); + j = scanf("%d", &repeat); c = getchar() & 0177; } else { - if (c != '.') repeat = 1; + if (c != '.') + repeat = 1; } if (c == '.') { c = lastc; } - if ((Klength > 0) && + if ((Klength > 0) && (c == *KL || c == *KR || c == *KU || c == *KD)) { savec = c; match = 0; @@ -208,9 +217,9 @@ mainloop() kr = KR; ku = KU; kd = KD; - for (j=Klength;j>0;j--){ + for (j = Klength; j > 0; j--) { if (match != 1) { - match = 0; + match = 0; if (*kl++ == c) { ch = 'h'; match++; @@ -228,22 +237,24 @@ mainloop() match++; } if (match == 0) { - ungetc(c,stdin); + ungetc(c, stdin); ch = savec; - /* Oops! - * This works if we figure it out on second character. - */ + /* Oops! This works if we + * figure it out on second + * character. */ break; } } savec = c; - if(j != 1) c = getchar() & 0177; + if (j != 1) + c = getchar() & 0177; } c = ch; } - if (!fast) flushi(); + if (!fast) + flushi(); lastc = c; - switch (c){ + switch (c) { case CTRL('z'): suspend(); continue; @@ -302,31 +313,31 @@ mainloop() c = 'j'; break; } - for(k=1;k<=repeat;k++){ + for (k = 1; k <= repeat; k++) { moves++; - switch(c) { + switch (c) { case 's': case 'h': case '\b': - if (you.col >0) { - if((fast)||(k == 1)) - pchar(&you,' '); + if (you.col > 0) { + if ((fast) || (k == 1)) + pchar(&you, ' '); you.col--; - if((fast) || (k == repeat) || - (you.col == 0)) - pchar(&you,ME); + if ((fast) || (k == repeat) || + (you.col == 0)) + pchar(&you, ME); } break; case 'f': case 'l': case ' ': - if (you.col < ccnt-1) { - if((fast)||(k == 1)) - pchar(&you,' '); + if (you.col < ccnt - 1) { + if ((fast) || (k == 1)) + pchar(&you, ' '); you.col++; - if((fast) || (k == repeat) || - (you.col == ccnt-1)) - pchar(&you,ME); + if ((fast) || (k == repeat) || + (you.col == ccnt - 1)) + pchar(&you, ME); } break; case CTRL('p'): @@ -334,12 +345,12 @@ mainloop() case 'k': case 'i': if (you.line > 0) { - if((fast)||(k == 1)) - pchar(&you,' '); + if ((fast) || (k == 1)) + pchar(&you, ' '); you.line--; - if((fast) || (k == repeat) || - (you.line == 0)) - pchar(&you,ME); + if ((fast) || (k == repeat) || + (you.line == 0)) + pchar(&you, ME); } break; case CTRL('n'): @@ -347,100 +358,104 @@ mainloop() case 'j': case LF: case 'm': - if (you.line+1 < lcnt) { - if((fast)||(k == 1)) - pchar(&you,' '); + if (you.line + 1 < lcnt) { + if ((fast) || (k == 1)) + pchar(&you, ' '); you.line++; - if((fast) || (k == repeat) || - (you.line == lcnt-1)) - pchar(&you,ME); + if ((fast) || (k == repeat) || + (you.line == lcnt - 1)) + pchar(&you, ME); } break; } - if (same(&you,&money)) - { - char xp[20]; - struct point z; + if (same(&you, &money)) { loot += 25; - if(k < repeat) - pchar(&you,' '); + if (k < repeat) + pchar(&you, ' '); do { snrand(&money); - } while (money.col == finish.col && money.line == finish.line || - money.col < 5 && money.line == 0 || - money.col == you.col && money.line == you.line); - pchar(&money,TREASURE); + } while ((money.col == finish.col && + money.line == finish.line) || + (money.col < 5 && money.line == 0) || + (money.col == you.col && + money.line == you.line)); + pchar(&money, TREASURE); winnings(cashvalue); continue; } - if (same(&you,&finish)) - { + if (same(&you, &finish)) { win(&finish); ll(); cook(); - pr("You have won with $%d.\n",cashvalue); + pr("You have won with $%d.\n", cashvalue); fflush(stdout); logit("won"); - post(cashvalue,1); + post(cashvalue, 1); length(moves); done(); } - if (pushsnake())break; + if (pushsnake()) + break; } fflush(stdout); } } -setup(){ /* - * setup the board - */ - int i; +/* + * setup the board + */ +void +setup() +{ + int i; clear(); - pchar(&you,ME); - pchar(&finish,GOAL); - pchar(&money,TREASURE); - for(i=1; i<6; i++) { - pchar(&snake[i],SNAKETAIL); + pchar(&you, ME); + pchar(&finish, GOAL); + pchar(&money, TREASURE); + for (i = 1; i < 6; i++) { + pchar(&snake[i], SNAKETAIL); } pchar(&snake[0], SNAKEHEAD); drawbox(); fflush(stdout); } +void drawbox() { - register int i; + int i; struct point p; p.line = -1; - for (i= 0; i<ccnt; i++) { + for (i = 0; i < ccnt; i++) { p.col = i; pchar(&p, '-'); } p.col = ccnt; - for (i= -1; i<=lcnt; i++) { + for (i = -1; i <= lcnt; i++) { p.line = i; pchar(&p, '|'); } p.col = -1; - for (i= -1; i<=lcnt; i++) { + for (i = -1; i <= lcnt; i++) { p.line = i; pchar(&p, '|'); } p.line = lcnt; - for (i= 0; i<ccnt; i++) { + for (i = 0; i < ccnt; i++) { p.col = i; pchar(&p, '-'); } } +void snrand(sp) -struct point *sp; + struct point *sp; { struct point p; - register int i; + int i; for (;;) { p.col = random() % ccnt; @@ -465,39 +480,40 @@ struct point *sp; *sp = p; } +int post(iscore, flag) -int iscore, flag; + int iscore, flag; { - short score = iscore; - int rawscores; - short uid; - short oldbest=0; - short allbwho=0, allbscore=0; - struct passwd *p; + short score = iscore; + int rawscores; + short uid; + short oldbest = 0; + short allbwho = 0, allbscore = 0; + struct passwd *p; /* * Neg uid, 0, and 1 cannot have scores recorded. */ if ((uid = getuid()) <= 1) { pr("No saved scores for uid %d.\n", uid); - return(1); + return (1); } - if ((rawscores = open(_PATH_RAWSCORES, O_RDWR|O_CREAT, 0644)) < 0) { + if ((rawscores = open(_PATH_RAWSCORES, O_RDWR | O_CREAT, 0644)) < 0) { pr("No score file %s: %s.\n", _PATH_RAWSCORES, strerror(errno)); - return(1); + return (1); } /* Figure out what happened in the past */ read(rawscores, &allbscore, sizeof(short)); read(rawscores, &allbwho, sizeof(short)); - lseek(rawscores, uid*sizeof(short), 0); + lseek(rawscores, uid * sizeof(short), 0); read(rawscores, &oldbest, sizeof(short)); if (!flag) return (score > oldbest ? 1 : 0); /* Update this jokers best */ if (score > oldbest) { - lseek(rawscores, uid*sizeof(short), 0); + lseek(rawscores, uid * sizeof(short), 0); write(rawscores, &score, sizeof(short)); pr("You bettered your previous best of $%d\n", oldbest); } else @@ -525,48 +541,51 @@ int iscore, flag; * overshooting. This loses horribly at 9600 baud, but works nicely * if the terminal gets behind. */ +void flushi() { tcflush(0, TCIFLUSH); } -int mx [8] = { - 0, 1, 1, 1, 0,-1,-1,-1}; -int my [8] = { - -1,-1, 0, 1, 1, 1, 0,-1}; -float absv[8]= { + +int mx[8] = { + 0, 1, 1, 1, 0, -1, -1, -1 +}; +int my[8] = { + -1, -1, 0, 1, 1, 1, 0, -1 +}; +float absv[8] = { 1, 1.4, 1, 1.4, 1, 1.4, 1, 1.4 }; -int oldw=0; -chase (np, sp) -struct point *sp, *np; +int oldw = 0; + +void +chase(np, sp) + struct point *sp, *np; { - /* this algorithm has bugs; otherwise the - snake would get too good */ + /* this algorithm has bugs; otherwise the snake would get too good */ struct point d; - int w, i, wt[8]; - double v1, v2, vp, max; - point(&d,you.col-sp->col,you.line-sp->line); - v1 = sqrt( (double) (d.col*d.col + d.line*d.line) ); - w=0; - max=0; - for(i=0; i<8; i++) - { - vp = d.col*mx[i] + d.line*my[i]; + int w, i, wt[8]; + double v1, v2, vp, max; + point(&d, you.col - sp->col, you.line - sp->line); + v1 = sqrt((double) (d.col * d.col + d.line * d.line)); + w = 0; + max = 0; + for (i = 0; i < 8; i++) { + vp = d.col * mx[i] + d.line * my[i]; v2 = absv[i]; - if (v1>0) - vp = ((double)vp)/(v1*v2); - else vp=1.0; - if (vp>max) - { - max=vp; - w=i; + if (v1 > 0) + vp = ((double) vp) / (v1 * v2); + else + vp = 1.0; + if (vp > max) { + max = vp; + w = i; } } - for(i=0; i<8; i++) - { - point(&d,sp->col+mx[i],sp->line+my[i]); - wt[i]=0; - if (d.col<0 || d.col>=ccnt || d.line<0 || d.line>=lcnt) + for (i = 0; i < 8; i++) { + point(&d, sp->col + mx[i], sp->line + my[i]); + wt[i] = 0; + if (d.col < 0 || d.col >= ccnt || d.line < 0 || d.line >= lcnt) continue; /* * Change to allow snake to eat you if you're on the money, @@ -575,36 +594,42 @@ struct point *sp, *np; * * if (d.line == 0 && d.col < 5) continue; */ - if (same(&d,&money)) continue; - if (same(&d,&finish)) continue; - wt[i]= i==w ? loot/10 : 1; - if (i==oldw) wt [i] += loot/20; - } - for(w=i=0; i<8; i++) - w+= wt[i]; - vp = (( rand() >> 6 ) & 01777) %w; - for(i=0; i<8; i++) - if (vp <wt[i]) + if (same(&d, &money)) + continue; + if (same(&d, &finish)) + continue; + wt[i] = i == w ? loot / 10 : 1; + if (i == oldw) + wt[i] += loot / 20; + } + for (w = i = 0; i < 8; i++) + w += wt[i]; + vp = ((rand() >> 6) & 01777) % w; + for (i = 0; i < 8; i++) + if (vp < wt[i]) break; else vp -= wt[i]; - if (i==8) { - pr("failure\n"); - i=0; - while (wt[i]==0) i++; - } - oldw=w=i; - point(np,sp->col+mx[w],sp->line+my[w]); + if (i == 8) { + pr("failure\n"); + i = 0; + while (wt[i] == 0) + i++; + } + oldw = w = i; + point(np, sp->col + mx[w], sp->line + my[w]); } +void spacewarp(w) -int w;{ + int w; +{ struct point p; - int j; - char *str; + int j; + char *str; snrand(&you); - point(&p,COLUMNS/2 - 8,LINES/2 - 1); + point(&p, COLUMNS / 2 - 8, LINES / 2 - 1); if (p.col < 0) p.col = 0; if (p.line < 0) @@ -615,152 +640,172 @@ int w;{ penalty = 0; } else { str = "SPACE WARP!!!"; - penalty += loot/PENALTY; + penalty += loot / PENALTY; } - for(j=0;j<3;j++){ + for (j = 0; j < 3; j++) { clear(); delay(5); - apr(&p,str); + apr(&p, str); delay(10); } setup(); winnings(cashvalue); } + +void snap() { struct point p; - int i; - if(you.line < 3){ - pchar(point(&p,you.col,0),'-'); + if (you.line < 3) { + pchar(point(&p, you.col, 0), '-'); } - if(you.line > lcnt-4){ - pchar(point(&p,you.col,lcnt-1),'_'); + if (you.line > lcnt - 4) { + pchar(point(&p, you.col, lcnt - 1), '_'); } - if(you.col < 10){ - pchar(point(&p,0,you.line),'('); + if (you.col < 10) { + pchar(point(&p, 0, you.line), '('); } - if(you.col > ccnt-10){ - pchar(point(&p,ccnt-1,you.line),')'); + if (you.col > ccnt - 10) { + pchar(point(&p, ccnt - 1, you.line), ')'); } - if (! stretch(&money)) if (! stretch(&finish)) delay(10); - if(you.line < 3){ - point(&p,you.col,0); + if (!stretch(&money)) + if (!stretch(&finish)) + delay(10); + if (you.line < 3) { + point(&p, you.col, 0); chk(&p); } - if(you.line > lcnt-4){ - point(&p,you.col,lcnt-1); + if (you.line > lcnt - 4) { + point(&p, you.col, lcnt - 1); chk(&p); } - if(you.col < 10){ - point(&p,0,you.line); + if (you.col < 10) { + point(&p, 0, you.line); chk(&p); } - if(you.col > ccnt-10){ - point(&p,ccnt-1,you.line); + if (you.col > ccnt - 10) { + point(&p, ccnt - 1, you.line); chk(&p); } fflush(stdout); } + +int stretch(ps) -struct point *ps;{ + struct point *ps; +{ struct point p; - point(&p,you.col,you.line); - if(abs(ps->col-you.col) < 6){ - if(you.line < ps->line){ - for (p.line = you.line+1;p.line <= ps->line;p.line++) - pchar(&p,'v'); + point(&p, you.col, you.line); + if (abs(ps->col - you.col) < 6) { + if (you.line < ps->line) { + for (p.line = you.line + 1; p.line <= ps->line; + p.line++) + pchar(&p, 'v'); delay(10); - for (;p.line > you.line;p.line--) + for (; p.line > you.line; p.line--) chk(&p); } else { - for (p.line = you.line-1;p.line >= ps->line;p.line--) - pchar(&p,'^'); + for (p.line = you.line - 1; p.line >= ps->line; + p.line--) + pchar(&p, '^'); delay(10); - for (;p.line < you.line;p.line++) + for (; p.line < you.line; p.line++) chk(&p); } - return(1); - } else if(abs(ps->line-you.line) < 3){ - p.line = you.line; - if(you.col < ps->col){ - for (p.col = you.col+1;p.col <= ps->col;p.col++) - pchar(&p,'>'); - delay(10); - for (;p.col > you.col;p.col--) - chk(&p); - } else { - for (p.col = you.col-1;p.col >= ps->col;p.col--) - pchar(&p,'<'); - delay(10); - for (;p.col < you.col;p.col++) - chk(&p); + return (1); + } else + if (abs(ps->line - you.line) < 3) { + p.line = you.line; + if (you.col < ps->col) { + for (p.col = you.col + 1; p.col <= ps->col; + p.col++) + pchar(&p, '>'); + delay(10); + for (; p.col > you.col; p.col--) + chk(&p); + } else { + for (p.col = you.col - 1; p.col >= ps->col; + p.col--) + pchar(&p, '<'); + delay(10); + for (; p.col < you.col; p.col++) + chk(&p); + } + return (1); } - return(1); - } - return(0); + return (0); } +void surround(ps) -struct point *ps;{ + struct point *ps; +{ struct point x; - int i,j; - - if(ps->col == 0)ps->col++; - if(ps->line == 0)ps->line++; - if(ps->line == LINES -1)ps->line--; - if(ps->col == COLUMNS -1)ps->col--; - apr(point(&x,ps->col-1,ps->line-1),"/*\\\r* *\r\\*/"); - for (j=0;j<20;j++){ - pchar(ps,'@'); + int j; + + if (ps->col == 0) + ps->col++; + if (ps->line == 0) + ps->line++; + if (ps->line == LINES - 1) + ps->line--; + if (ps->col == COLUMNS - 1) + ps->col--; + apr(point(&x, ps->col - 1, ps->line - 1), "/*\\\r* *\r\\*/"); + for (j = 0; j < 20; j++) { + pchar(ps, '@'); delay(1); - pchar(ps,' '); + pchar(ps, ' '); delay(1); } - if (post(cashvalue,0)) { - apr(point(&x,ps->col-1,ps->line-1)," \ro.o\r\\_/"); + if (post(cashvalue, 0)) { + apr(point(&x, ps->col - 1, ps->line - 1), " \ro.o\r\\_/"); delay(6); - apr(point(&x,ps->col-1,ps->line-1)," \ro.-\r\\_/"); + apr(point(&x, ps->col - 1, ps->line - 1), " \ro.-\r\\_/"); delay(6); } - apr(point(&x,ps->col-1,ps->line-1)," \ro.o\r\\_/"); + apr(point(&x, ps->col - 1, ps->line - 1), " \ro.o\r\\_/"); } + +void win(ps) -struct point *ps; + struct point *ps; { struct point x; - int j,k; - int boxsize; /* actually diameter of box, not radius */ + int j, k; + int boxsize; /* actually diameter of box, not radius */ boxsize = fast ? 10 : 4; - point(&x,ps->col,ps->line); - for(j=1;j<boxsize;j++){ - for(k=0;k<j;k++){ - pchar(&x,'#'); + point(&x, ps->col, ps->line); + for (j = 1; j < boxsize; j++) { + for (k = 0; k < j; k++) { + pchar(&x, '#'); x.line--; } - for(k=0;k<j;k++){ - pchar(&x,'#'); + for (k = 0; k < j; k++) { + pchar(&x, '#'); x.col++; } j++; - for(k=0;k<j;k++){ - pchar(&x,'#'); + for (k = 0; k < j; k++) { + pchar(&x, '#'); x.line++; } - for(k=0;k<j;k++){ - pchar(&x,'#'); + for (k = 0; k < j; k++) { + pchar(&x, '#'); x.col--; } } fflush(stdout); } +int pushsnake() { - int i, bonus; - int issame = 0; + int i, bonus; + int issame = 0; /* * My manual says times doesn't return a value. Furthermore, the @@ -768,23 +813,21 @@ pushsnake() * on a fast terminal with typematic keys or not. * So I have taken the call to times out. */ - for(i=4; i>=0; i--) + for (i = 4; i >= 0; i--) if (same(&snake[i], &snake[5])) issame++; if (!issame) - pchar(&snake[5],' '); - for(i=4; i>=0; i--) - snake[i+1]= snake[i]; + pchar(&snake[5], ' '); + for (i = 4; i >= 0; i--) + snake[i + 1] = snake[i]; chase(&snake[0], &snake[1]); - pchar(&snake[1],SNAKETAIL); - pchar(&snake[0],SNAKEHEAD); - for(i=0; i<6; i++) - { - if (same(&snake[i],&you)) - { + pchar(&snake[1], SNAKETAIL); + pchar(&snake[0], SNAKEHEAD); + for (i = 0; i < 6; i++) { + if (same(&snake[i], &you)) { surround(&you); i = (cashvalue) % 10; - bonus = ((rand()>>8) & 0377)% 10; + bonus = ((rand() >> 8) & 0377) % 10; ll(); pr("%d\n", bonus); delay(30); @@ -792,9 +835,9 @@ pushsnake() spacewarp(1); logit("bonus"); flushi(); - return(1); + return (1); } - if ( loot >= penalty ){ + if (loot >= penalty) { pr("You and your $%d have been eaten\n", cashvalue); } else { @@ -806,68 +849,73 @@ pushsnake() done(); } } - return(0); + return (0); } - + +int chk(sp) -struct point *sp; + struct point *sp; { - int j; + int j; - if (same(sp,&money)) { - pchar(sp,TREASURE); - return(2); + if (same(sp, &money)) { + pchar(sp, TREASURE); + return (2); } - if (same(sp,&finish)) { - pchar(sp,GOAL); - return(3); + if (same(sp, &finish)) { + pchar(sp, GOAL); + return (3); } - if (same(sp,&snake[0])) { - pchar(sp,SNAKEHEAD); - return(4); + if (same(sp, &snake[0])) { + pchar(sp, SNAKEHEAD); + return (4); } - for(j=1;j<6;j++){ - if(same(sp,&snake[j])){ - pchar(sp,SNAKETAIL); - return(4); + for (j = 1; j < 6; j++) { + if (same(sp, &snake[j])) { + pchar(sp, SNAKETAIL); + return (4); } } - if ((sp->col < 4) && (sp->line == 0)){ + if ((sp->col < 4) && (sp->line == 0)) { winnings(cashvalue); - if((you.line == 0) && (you.col < 4)) pchar(&you,ME); - return(5); + if ((you.line == 0) && (you.col < 4)) + pchar(&you, ME); + return (5); } - if (same(sp,&you)) { - pchar(sp,ME); - return(1); + if (same(sp, &you)) { + pchar(sp, ME); + return (1); } - pchar(sp,' '); - return(0); + pchar(sp, ' '); + return (0); } + +void winnings(won) -int won; + int won; { struct point p; p.line = p.col = 1; - if(won>0){ + if (won > 0) { move(&p); - pr("$%d",won); + pr("$%d", won); } } void -stop(){ - signal(SIGINT,SIG_IGN); +stop(dummy) + int dummy; +{ + signal(SIGINT, SIG_IGN); ll(); length(moves); done(); } +void suspend() { - char *sh; - ll(); cook(); kill(getpid(), SIGTSTP); @@ -876,19 +924,21 @@ suspend() winnings(cashvalue); } +void length(num) -int num; + int num; { - pr("You made %d moves.\n",num); + pr("You made %d moves.\n", num); } +void logit(msg) -char *msg; + const char *msg; { - FILE *logfile; - time_t t; + FILE *logfile; + time_t t; - if ((logfile=fopen(_PATH_LOGFILE, "a")) != NULL) { + if ((logfile = fopen(_PATH_LOGFILE, "a")) != NULL) { time(&t); fprintf(logfile, "%s $%d %dx%d %s %s", getlogin(), cashvalue, lcnt, ccnt, msg, ctime(&t)); |