mirror of
https://github.com/vattam/BSDGames.git
synced 2025-12-20 19:04:49 +00:00
Initial revision
git-svn-id: file:///srv/svn/joey/bsdgames-trunk@5086 a4a2c43b-8ac3-0310-8836-e0e880c912e2
This commit is contained in:
179
mille/extern.c
Normal file
179
mille/extern.c
Normal file
@@ -0,0 +1,179 @@
|
||||
/* $NetBSD: extern.c,v 1.5 1997/10/12 00:53:55 lukem Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)extern.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: extern.c,v 1.5 1997/10/12 00:53:55 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
# include "mille.h"
|
||||
|
||||
/*
|
||||
* @(#)extern.c 1.1 (Berkeley) 4/1/82
|
||||
*/
|
||||
|
||||
bool Debug, /* set if debugging code on */
|
||||
Finished, /* set if current hand is finished */
|
||||
Next, /* set if changing players */
|
||||
On_exit, /* set if game saved on exiting */
|
||||
Order, /* set if hand should be sorted */
|
||||
Saved; /* set if game just saved */
|
||||
|
||||
char Initstr[100]; /* initial string for error field */
|
||||
const char *C_fmt = "%-18.18s", /* format for printing cards */
|
||||
*Fromfile = NULL, /* startup file for game */
|
||||
*const _cn[NUM_CARDS] = { /* Card name buffer */
|
||||
"",
|
||||
"25",
|
||||
"50",
|
||||
"75",
|
||||
"100",
|
||||
"200",
|
||||
"Out of Gas",
|
||||
"Flat Tire",
|
||||
"Accident",
|
||||
"Stop",
|
||||
"Speed Limit",
|
||||
"Gasoline",
|
||||
"Spare Tire",
|
||||
"Repairs",
|
||||
"Go",
|
||||
"End of Limit",
|
||||
"Extra Tank",
|
||||
"Puncture Proof",
|
||||
"Driving Ace",
|
||||
"Right of Way"
|
||||
},
|
||||
*const *C_name = &_cn[1]; /* Card names */
|
||||
|
||||
int Card_no, /* Card number for current move */
|
||||
End, /* End value for current hand */
|
||||
Handstart = COMP, /* Player who starts hand */
|
||||
Movetype, /* Current move type */
|
||||
Play, /* Current player */
|
||||
Numgos, /* Number of Go cards used by computer */
|
||||
Window = W_SMALL, /* Current window wanted */
|
||||
Numseen[NUM_CARDS]; /* Number of cards seen in current hand */
|
||||
const int Value[NUM_MILES] = { /* Value of mileage cards */
|
||||
25, 50, 75, 100, 200
|
||||
},
|
||||
Numcards[NUM_CARDS] = { /* Number of cards in deck */
|
||||
10, /* C_25 */
|
||||
10, /* C_50 */
|
||||
10, /* C_75 */
|
||||
12, /* C_100 */
|
||||
4, /* C_200 */
|
||||
2, /* C_EMPTY */
|
||||
2, /* C_FLAT */
|
||||
2, /* C_CRASH */
|
||||
4, /* C_STOP */
|
||||
3, /* C_LIMIT */
|
||||
6, /* C_GAS */
|
||||
6, /* C_SPARE */
|
||||
6, /* C_REPAIRS */
|
||||
14, /* C_GO */
|
||||
6, /* C_END_LIMIT */
|
||||
1, /* C_GAS_SAFE */
|
||||
1, /* C_SPARE_SAFE */
|
||||
1, /* C_DRIVE_SAFE */
|
||||
1, /* C_RIGHT_WAY */
|
||||
0 /* C_INIT */
|
||||
};
|
||||
int Numneed[NUM_CARDS] = { /* number of cards needed per hand */
|
||||
0, /* C_25 */
|
||||
0, /* C_50 */
|
||||
0, /* C_75 */
|
||||
0, /* C_100 */
|
||||
0, /* C_200 */
|
||||
2, /* C_EMPTY */
|
||||
2, /* C_FLAT */
|
||||
2, /* C_CRASH */
|
||||
4, /* C_STOP */
|
||||
3, /* C_LIMIT */
|
||||
2, /* C_GAS */
|
||||
2, /* C_SPARE */
|
||||
2, /* C_REPAIRS */
|
||||
10, /* C_GO */
|
||||
3, /* C_END_LIMIT */
|
||||
1, /* C_GAS_SAFE */
|
||||
1, /* C_SPARE_SAFE */
|
||||
1, /* C_DRIVE_SAFE */
|
||||
1, /* C_RIGHT_WAY */
|
||||
0 /* C_INIT */
|
||||
};
|
||||
|
||||
CARD Discard, /* Top of discard pile */
|
||||
Sh_discard, /* Last discard card shown */
|
||||
*Topcard; /* Pointer to next card to be picked */
|
||||
const CARD Opposite[NUM_CARDS] = { /* Opposites of each card */
|
||||
C_25, C_50, C_75, C_100, C_200, C_GAS, C_SPARE,
|
||||
C_REPAIRS, C_GO, C_END_LIMIT, C_EMPTY, C_FLAT, C_CRASH,
|
||||
C_STOP, C_LIMIT, C_EMPTY, C_FLAT, C_CRASH, C_STOP, C_INIT
|
||||
};
|
||||
CARD Deck[DECK_SZ] = { /* Current deck */
|
||||
C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25,
|
||||
C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50,
|
||||
C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75,
|
||||
C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100,
|
||||
C_100, C_100, C_100,
|
||||
C_200, C_200, C_200, C_200,
|
||||
C_EMPTY, C_EMPTY,
|
||||
C_FLAT, C_FLAT,
|
||||
C_CRASH, C_CRASH,
|
||||
C_STOP, C_STOP, C_STOP, C_STOP,
|
||||
C_LIMIT, C_LIMIT, C_LIMIT,
|
||||
C_GAS, C_GAS, C_GAS, C_GAS, C_GAS, C_GAS,
|
||||
C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE,
|
||||
C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS,
|
||||
C_REPAIRS,
|
||||
C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT,
|
||||
C_END_LIMIT,
|
||||
C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO,
|
||||
C_GO, C_GO, C_GO, C_GO,
|
||||
C_GAS_SAFE, C_SPARE_SAFE, C_DRIVE_SAFE, C_RIGHT_WAY
|
||||
};
|
||||
|
||||
FILE *outf;
|
||||
|
||||
PLAY Player[2]; /* Player descriptions */
|
||||
|
||||
WINDOW *Board, /* Playing field screen */
|
||||
*Miles, /* Mileage screen */
|
||||
*Score; /* Score screen */
|
||||
|
||||
Reference in New Issue
Block a user