(linenum→info "unix/slp.c:2238")

bsd-games/2.17/mille/extern.c

    1: /*      $NetBSD: extern.c,v 1.7 2003/08/07 09:37:25 agc Exp $        */
    2: 
    3: /*
    4:  * Copyright (c) 1982, 1993
    5:  *      The Regents of the University of California.  All rights reserved.
    6:  *
    7:  * Redistribution and use in source and binary forms, with or without
    8:  * modification, are permitted provided that the following conditions
    9:  * are met:
   10:  * 1. Redistributions of source code must retain the above copyright
   11:  *    notice, this list of conditions and the following disclaimer.
   12:  * 2. Redistributions in binary form must reproduce the above copyright
   13:  *    notice, this list of conditions and the following disclaimer in the
   14:  *    documentation and/or other materials provided with the distribution.
   15:  * 3. Neither the name of the University nor the names of its contributors
   16:  *    may be used to endorse or promote products derived from this software
   17:  *    without specific prior written permission.
   18:  *
   19:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   23:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   24:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   25:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   27:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   28:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   29:  * SUCH DAMAGE.
   30:  */
   31: 
   32: #include <sys/cdefs.h>
   33: #ifndef lint
   34: #if 0
   35: static char sccsid[] = "@(#)extern.c    8.1 (Berkeley) 5/31/93";
   36: #else
   37: __RCSID("$NetBSD: extern.c,v 1.7 2003/08/07 09:37:25 agc Exp $");
   38: #endif
   39: #endif /* not lint */
   40: 
   41: # include       "mille.h"
   42: 
   43: /*
   44:  * @(#)extern.c 1.1 (Berkeley) 4/1/82
   45:  */
   46: 
   47: bool    Debug,                     /* set if debugging code on               */
   48:         Finished,              /* set if current hand is finished  */
   49:         Next,                  /* set if changing players             */
   50:         On_exit,               /* set if game saved on exiting              */
   51:         Order,                 /* set if hand should be sorted               */
   52:         Saved;                 /* set if game just saved             */
   53: 
   54: char    Initstr[100];              /* initial string for error field   */
   55: const char      *C_fmt = "%-18.18s", /* format for printing cards    */
   56:         *Fromfile = NULL,      /* startup file for game             */
   57:         *const _cn[NUM_CARDS] = {      /* Card name buffer          */
   58:                 "",
   59:                 "25",
   60:                 "50",
   61:                 "75",
   62:                 "100",
   63:                 "200",
   64:                 "Out of Gas",
   65:                 "Flat Tire",
   66:                 "Accident",
   67:                 "Stop",
   68:                 "Speed Limit", 
   69:                 "Gasoline",
   70:                 "Spare Tire",
   71:                 "Repairs",
   72:                 "Go",
   73:                 "End of Limit",
   74:                 "Extra Tank",
   75:                 "Puncture Proof",
   76:                 "Driving Ace",
   77:                 "Right of Way"
   78:         },
   79:         *const *C_name = &_cn[1];      /* Card names                        */
   80: 
   81: int     Card_no,            /* Card number for current move           */
   82:         End,                   /* End value for current hand           */
   83:         Handstart = COMP,      /* Player who starts hand            */
   84:         Movetype,              /* Current move type                        */
   85:         Play,                  /* Current player                      */
   86:         Numgos,                        /* Number of Go cards used by computer       */
   87:         Window = W_SMALL,      /* Current window wanted             */
   88:         Numseen[NUM_CARDS];    /* Number of cards seen in current hand    */
   89: const int       Value[NUM_MILES] = {  /* Value of mileage cards        */
   90:                 25, 50, 75, 100, 200
   91:         },
   92:         Numcards[NUM_CARDS] = {        /* Number of cards in deck             */
   93:                 10,   /* C_25 */
   94:                 10,   /* C_50 */
   95:                 10,   /* C_75 */
   96:                 12,   /* C_100 */
   97:                 4,    /* C_200 */
   98:                 2,    /* C_EMPTY */
   99:                 2,    /* C_FLAT */
  100:                 2,    /* C_CRASH */
  101:                 4,    /* C_STOP */
  102:                 3,    /* C_LIMIT */
  103:                 6,    /* C_GAS */
  104:                 6,    /* C_SPARE */
  105:                 6,    /* C_REPAIRS */
  106:                 14,   /* C_GO */
  107:                 6,    /* C_END_LIMIT */
  108:                 1,    /* C_GAS_SAFE */
  109:                 1,    /* C_SPARE_SAFE */
  110:                 1,    /* C_DRIVE_SAFE */
  111:                 1,    /* C_RIGHT_WAY */
  112:                 0     /* C_INIT */
  113:         };
  114: int     Numneed[NUM_CARDS] = {      /* number of cards needed per hand   */
  115:                 0,    /* C_25 */
  116:                 0,    /* C_50 */
  117:                 0,    /* C_75 */
  118:                 0,    /* C_100 */
  119:                 0,    /* C_200 */
  120:                 2,    /* C_EMPTY */
  121:                 2,    /* C_FLAT */
  122:                 2,    /* C_CRASH */
  123:                 4,    /* C_STOP */
  124:                 3,    /* C_LIMIT */
  125:                 2,    /* C_GAS */
  126:                 2,    /* C_SPARE */
  127:                 2,    /* C_REPAIRS */
  128:                 10,   /* C_GO */
  129:                 3,    /* C_END_LIMIT */
  130:                 1,    /* C_GAS_SAFE */
  131:                 1,    /* C_SPARE_SAFE */
  132:                 1,    /* C_DRIVE_SAFE */
  133:                 1,    /* C_RIGHT_WAY */
  134:                 0     /* C_INIT */
  135:         };
  136: 
  137: CARD    Discard,           /* Top of discard pile                   */
  138:         Sh_discard,            /* Last discard card shown                */
  139:         *Topcard;              /* Pointer to next card to be picked        */
  140: const CARD      Opposite[NUM_CARDS] = {      /* Opposites of each card    */
  141:                 C_25, C_50, C_75, C_100, C_200, C_GAS, C_SPARE,
  142:                 C_REPAIRS, C_GO, C_END_LIMIT, C_EMPTY, C_FLAT, C_CRASH,
  143:                 C_STOP, C_LIMIT, C_EMPTY, C_FLAT, C_CRASH, C_STOP, C_INIT
  144:         };
  145: CARD    Deck[DECK_SZ] = {  /* Current deck                          */
  146:                 C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25,
  147:                 C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50,
  148:                 C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75,
  149:                 C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100,
  150:                 C_100, C_100, C_100,
  151:                 C_200, C_200, C_200, C_200,
  152:                 C_EMPTY, C_EMPTY,
  153:                 C_FLAT, C_FLAT,
  154:                 C_CRASH, C_CRASH,
  155:                 C_STOP, C_STOP, C_STOP, C_STOP,
  156:                 C_LIMIT, C_LIMIT, C_LIMIT,
  157:                 C_GAS, C_GAS, C_GAS, C_GAS, C_GAS, C_GAS,
  158:                 C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE,
  159:                 C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS,
  160:                         C_REPAIRS,
  161:                 C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT,
  162:                         C_END_LIMIT,
  163:                 C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO,
  164:                         C_GO, C_GO, C_GO, C_GO,
  165:                 C_GAS_SAFE, C_SPARE_SAFE, C_DRIVE_SAFE, C_RIGHT_WAY
  166:         };
  167: 
  168: FILE    *outf;
  169: 
  170: PLAY    Player[2];         /* Player descriptions                 */
  171: 
  172: WINDOW  *Board,                  /* Playing field screen                        */
  173:         *Miles,                        /* Mileage screen                    */
  174:         *Score;                        /* Score screen                              */
  175: 
Syntax (Markdown)