⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 misc.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#include	"mille.h"# ifdef	attron#	include	<term.h>#	define	_tty	cur_term->Nttyb# endif	attron/* * @(#)misc.c	1.3 (Berkeley) 7/2/83 */#define	NUMSAFE	4/* VARARGS1 */error(str, arg)char	*str;{	stdscr = Score;	mvprintw(ERR_Y, ERR_X, str, arg);	clrtoeol();	putchar('');	refresh();	stdscr = Board;	return FALSE;}CARDgetcard(){	reg char	c, c1;	for (;;) {		while ((c = readch()) == '\n' || c == '\r' || c == ' ')			continue;		if (islower(c))			c = toupper(c);		if (c == _tty.sg_kill || c == _tty.sg_erase)			return -1;		addstr(unctrl(c));		clrtoeol();		switch (c) {		  case '1':	case '2':	case '3':		  case '4':	case '5':	case '6':			c -= '0';			break;		  case '0':	case 'P':	case 'p':			c = 0;			break;		  default:			putchar('');			addch('\b');			if (!isprint(c))				addch('\b');			c = -1;			break;		}		refresh();		if (c >= 0) {			while ((c1=readch()) != '\r' && c1 != '\n' && c1 != ' ')				if (c1 == _tty.sg_kill)					return -1;				else if (c1 == _tty.sg_erase) {					addch('\b');					clrtoeol();					refresh();					goto cont;				}				else					write(0, "", 1);			return c;		}cont:		;	}}check_ext(forcomp)reg bool	forcomp; {	if (End == 700)		if (Play == PLAYER) {			if (getyn("Extension? ")) {extend:				if (!forcomp)					End = 1000;				return TRUE;			}			else {done:				if (!forcomp)					Finished = TRUE;				return FALSE;			}		}		else {			reg PLAY	*pp, *op;			reg int		i, safe, miles;			pp = &Player[COMP];			op = &Player[PLAYER];			for (safe = 0, i = 0; i < NUMSAFE; i++)				if (pp->safety[i] != S_UNKNOWN)					safe++;			if (safe < 2)				goto done;			if (op->mileage == 0 || onecard(op)			    || (op->can_go && op->mileage >= 500))				goto done;			for (miles = 0, i = 0; i < NUMSAFE; i++)				if (op->safety[i] != S_PLAYED				    && pp->safety[i] == S_UNKNOWN)					miles++;			if (miles + safe == NUMSAFE)				goto extend;			for (miles = 0, i = 0; i < HAND_SZ; i++)				if ((safe = pp->hand[i]) <= C_200)					miles += Value[safe]; 			if (miles + (Topcard - Deck) * 3 > 1000)				goto extend;			goto done;		}	else		goto done;}/* *	Get a yes or no answer to the given question.  Saves are * also allowed.  Return TRUE if the answer was yes, FALSE if no. */getyn(prompt)reg char	*prompt; {	reg char	c;	Saved = FALSE;	for (;;) {		leaveok(Board, FALSE);		mvaddstr(MOVE_Y, MOVE_X, prompt);		clrtoeol();		refresh();		switch (c = readch()) {		  case 'n':	case 'N':			addch('N');			refresh();			leaveok(Board, TRUE);			return FALSE;		  case 'y':	case 'Y':			addch('Y');			refresh();			leaveok(Board, TRUE);			return TRUE;		  case 's':	case 'S':			addch('S');			refresh();			Saved = save();			continue;		  default:			addstr(unctrl(c));			refresh();			putchar('');			break;		}	}}/* *	Check to see if more games are desired.  If not, and game * came from a saved file, make sure that they don't want to restore * it.  Exit appropriately. */check_more() {	raw();	/* Flush input */	noraw();	On_exit = TRUE;	if (Player[PLAYER].total >= 5000 || Player[COMP].total >= 5000)		if (getyn("Another game? "))			return;		else {			/*			 * must do accounting normally done in main()			 */			if (Player[PLAYER].total > Player[COMP].total)				Player[PLAYER].games++;			else if (Player[PLAYER].total < Player[COMP].total)				Player[COMP].games++;			Player[COMP].total = 0;			Player[PLAYER].total = 0;		}	else		if (getyn("Another hand? "))			return;	if (!Saved && getyn("Save game? "))		if (!save())			return;	die();}readch(){	reg int		cnt;	static char	c;	for (cnt = 0; read(0, &c, 1) <= 0; cnt++)		if (cnt > 100)			exit(1);	return c;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -