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

📄 wheur.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include "old.h"/* *	mobility *	1 for each potential move */wheur1(){	int *p1, *p2, *p3, i;	int pto;	if(amp[-2]) {		i = amp[-3];		pto = board[i];		board[i] = 0;	}	p1 = lmp;	wgen();	p2 = lmp;	lmp = p1;	bgen();	p3 = lmp;	lmp = p1;	i = p2-p3;	i =>> 1;	if(amp[-2])		board[amp[-3]] = pto;	return(i);}/* *	opening 'goodies' */wheur2(){	int i;	i = 0;	if(game > 2) return(i);	/*	 * minor pieces out	 * knights before bishops	 */	i =+ 9*((board[57] != -2)+		(board[62] != -2));	i =+ 8*((board[58] != -3)+		(board[61] != -3));	/*	 * blocked central pawns	 */	if(board[51] == -1 && board[51-8]!=0) i =- 10;	if(board[52] == -1 && board[52-8]!=0) i =- 10;	return(i);}/* *	castle */wheur3(){	int i;	i = 0;	/*	 * queenside ability	 */	if(flag&02 && board[48]== -1 && board[49]== -1 && board[50]== -1)		i =+ 20;	/*	 *  kingside ability	 */	if(flag&01 && board[53]== -1 && board[54]== -1 && board[55]== -1)		i =+ 20;	/*	 * if both	 */	if(i == 40)		i = 22;	/*	 * if castled,	 * keep pawns in	 */	if(wkpos==58)		if(board[50]== -1 && (board[48]== -1 || board[48-8]== -1) &&			(board[49]== -1 || board[49-8]== -1))				i =+ 40;	if(wkpos==62)		if(board[53]== -1 && (board[54]== -1 || board[54-8]== -1) &&			(board[55]== -1 || board[55-8]== -1))				i =+ 40;	return(i);}/* *	prance *	a percentage if the *	piece on the move *	can be driven back *	by a smaller piece */wheur4(){	int *p1, *p2, ploc, i;	if(amp[-1] != 1) return(0);	ploc = amp[-3];	if(board[ploc] == -1) return(0);	if(xheur(ploc)) return(0);	p1 = lmp;	p2 = p1;	bagen();	i = 0;	while(p2 != lmp) {		p2++;		bmove(*p2++);		i = xheur(ploc);		bremove();		if(i)			break;	}	lmp = p1;	return(i);}/* *	control *	center control *		opening *		beginning *	king control *		middle *		end */wheur5(){	int i, j, k;	int s, n, d, pto;	if(amp[-2]) {		i = amp[-3];		pto = board[i];		board[i] = 0;	}	i = 64;	while(i--)		control[i] = 0;	if(game < 2) {		i = 64;		while(i--)			control[i] =+ center[i];	}	if(mantom) {		if((flag&03)==0)			srnd(wkpos);	} else {		if((flag&030)==0)			srnd(bkpos);	}	i = 64;	s = 0;	while(i--) {		n = control[i]*100;		attack(i);		j = 0;		while(k = attacv[j++]) {			d = (pval+6)[k];			if(d < 0)				s =- n/(-d); else				s =+ n/d;		}	}	if(amp[-2])		board[amp[-3]] = pto;	return(-s);}/* * mate threat * minus for captures */wheur6(){	int i;	i = 0;	*amp++ = -1;	if(wattack(bkpos))		if(mate(2, 0))			i =+ 15;	amp--;	return(i);}

⌨️ 快捷键说明

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