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

📄 end.c

📁 早期freebsd实现
💻 C
字号:
/* * 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. */#ifndef lintstatic char sccsid[] = "@(#)end.c	8.1 (Berkeley) 5/31/93";#endif /* not lint */# include	"mille.h"/* * @(#)end.c	1.1 (Berkeley) 4/1/82 *//* *	print out the score as if it was final, and add the totals for * the end-of-games points to the user who deserves it (if any). */finalscore(pp)reg PLAY	*pp; {	reg int		temp, tot, num;	if (pp->was_finished == Finished)		return;	pp->was_finished = Finished;	num = pp - Player;	temp = num * 6 + 21 + 1;	for (tot = 5; tot <= 9; tot++)		mvaddstr(tot, temp, "  0");	if (pp->mileage == End) {		mvaddstr(5, temp, "40");		tot = SC_TRIP;		if (pp->nummiles[C_200] == 0) {			mvaddstr(6, temp, "30");			tot = SC_TRIP + SC_SAFE;		}		if (Topcard <= Deck) {			mvaddstr(7, temp, "30");			tot += SC_DELAY;		}		if (End == 1000) {			mvaddstr(8, temp, "20");			tot += SC_EXTENSION;		}		if (Player[other(num)].mileage == 0) {			mvaddstr(9, temp, "50");			tot += SC_SHUT_OUT;		}		pp->total += tot;		pp->hand_tot += tot;	}}# ifdef EXTRAPstatic int	Last_tot[2];	/* last tot used for extrapolate	*//* *	print out the score as if it was final, and add the totals for * the end-of-games points to the user who deserves it (if any). */extrapolate(pp)reg PLAY	*pp; {	reg int		x, num, tot, count;	num = pp - Player;	tot += SC_TRIP + SC_DELAY + SC_EXT;	x = num * 6 + 21 + 3;	for (tot = 5; tot <= 9; tot++)		mvaddch(tot, x, '0');	x -= 2;	pp = &Player[other(num)];	for (count = 0, tot = 0; tot < NUM_SAFE; tot++)		if (pp->safety[tot] != S_PLAYED)			count += SC_SAFE;	mvprintw(3, x, "%3d", count);	tot += count;	if (count == 400) {		mvaddstr(4, x, "30");		tot += SC_ALL_SAFE;	}	pp = &Player[num];	for (count = 0, tot = 0; tot < NUM_SAFE; tot++)		if (pp->safety[tot] != S_PLAYED)			count += SC_COUP / 10;	mvprintw(4, x - 1, "%3d", count);	tot += count;	tot += 1000 - pp->mileage;	mvaddstr(5, x, "40");	mvaddstr(7, x, "30");	mvaddstr(8, x, "20");	if (pp->nummiles[C_200] == 0) {		mvaddstr(6, x, "30");		tot = SC_TRIP + SC_SAFE;	}	if (Player[other(num)].mileage == 0) {		mvaddstr(9, x, "50");		tot += SC_SHUT_OUT;	}	pp->total += tot;	pp->hand_tot += tot;	Last_tot[num] = tot;}undoex() {	reg PLAY	*pp;	reg int		i;	i = 0;	for (pp = Player; pp < &Player[2]; pp++) {		pp->total -= Last_tot[i];		pp->hand_tot -= Last_tot[i++];	}}# endif

⌨️ 快捷键说明

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