Annotation of 43BSD/games/backgammon/teach.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  */
                      6: 
                      7: #ifndef lint
                      8: static char sccsid[] = "@(#)teach.c    5.1 (Berkeley) 5/29/85";
                      9: #endif not lint
                     10: 
                     11: #include "back.h"
                     12: 
                     13: char   *hello[];
                     14: char   *list[];
                     15: char   *intro1[];
                     16: char   *intro2[];
                     17: char   *moves[];
                     18: char   *remove[];
                     19: char   *hits[];
                     20: char   *endgame[];
                     21: char   *doubl[];
                     22: char   *stragy[];
                     23: char   *prog[];
                     24: char   *lastch[];
                     25: 
                     26: extern char    ospeed;                 /* tty output speed for termlib */
                     27: 
                     28: char *helpm[] = {
                     29:        "\nEnter a space or newline to roll, or",
                     30:        "     b   to display the board",
                     31:        "     d   to double",
                     32:        "     q   to quit\n",
                     33:        0
                     34: };
                     35: 
                     36: char *contin[] = {
                     37:        "",
                     38:        0
                     39: };
                     40: 
                     41: main (argc,argv)
                     42: int    argc;
                     43: char   **argv;
                     44: 
                     45: {
                     46:        register char   *s, *ts[];
                     47:        register int    i;
                     48: 
                     49:        signal (2,getout);
                     50:        if (gtty (0,&tty) == -1)                        /* get old tty mode */
                     51:                errexit ("teachgammon(gtty)");
                     52:        old = tty.sg_flags;
                     53: #ifdef V7
                     54:        raw = ((noech = old & ~ECHO) | CBREAK);         /* set up modes */
                     55: #else
                     56:        raw = ((noech = old & ~ECHO) | RAW);            /* set up modes */
                     57: #endif
                     58:        ospeed = old.sg_ospeed;                         /* for termlib */
                     59:        tflag = getcaps (getenv ("TERM"));
                     60: #ifdef V7
                     61:        while (*++argv != 0)
                     62: #else
                     63:        while (*++argv != -1)
                     64: #endif
                     65:                getarg (&argv);
                     66:        if (tflag)  {
                     67:                noech &= ~(CRMOD|XTABS);
                     68:                raw &= ~(CRMOD|XTABS);
                     69:                clear();
                     70:        }
                     71:        text (hello);
                     72:        text (list);
                     73:        i = text (contin);
                     74:        if (i == 0)
                     75:                i = 2;
                     76:        init();
                     77:        while (i)
                     78:                switch (i)  {
                     79:                
                     80:                case 1:
                     81:                        leave();
                     82:                
                     83:                case 2:
                     84:                        if (i = text(intro1))
                     85:                                break;
                     86:                        wrboard();
                     87:                        if (i = text(intro2))
                     88:                                break;
                     89:                
                     90:                case 3:
                     91:                        if (i = text(moves))
                     92:                                break;
                     93:                
                     94:                case 4:
                     95:                        if (i = text(remove))
                     96:                                break;
                     97:                
                     98:                case 5:
                     99:                        if (i = text(hits))
                    100:                                break;
                    101:                
                    102:                case 6:
                    103:                        if (i = text(endgame))
                    104:                                break;
                    105:                
                    106:                case 7:
                    107:                        if (i = text(doubl))
                    108:                                break;
                    109:                
                    110:                case 8:
                    111:                        if (i = text(stragy))
                    112:                                break;
                    113:                
                    114:                case 9:
                    115:                        if (i = text(prog))
                    116:                                break;
                    117:                
                    118:                case 10:
                    119:                        if (i = text(lastch))
                    120:                                break;
                    121:                }
                    122:        tutor();
                    123: }
                    124: 
                    125: leave()  {
                    126:        if (tflag)
                    127:                clear();
                    128:        else
                    129:                writec ('\n');
                    130:        fixtty(old);
                    131:        execl (EXEC,"backgammon",args,"n",0);
                    132:        writel ("Help! Backgammon program is missing\007!!\n");
                    133:        exit (-1);
                    134: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.