?? bheur.c
字號:
#include "old.h"/* * mobility * 1 for each potential move */bheur1(){ return(-wheur1());}/* * opening 'goodies' * 10 for each minor piece out * -10 for blocking kq pawns */bheur2(){ int i, mt; i = 0; if(game > 2) return(i); mt = amp[-1]; if(mt == 2 || mt == 3) i =+ 30; if(mt == 0) i =- 20; i =+ 9*((board[1] != 2)+ (board[6] != 2)); i =+ 8*((board[2] != 3)+ (board[5] != 3)); /* * -10 for blocked central pawns */ if(board[11]==1 && board[11+8]!=0) i =- 10; if(board[12]==1 && board[12+8]!=0) i =- 10; return(i);}/* * ability to castle * 22 for both flags * 20 for one flag */bheur3(){ int i; i = 0; /* * queenside ability */ if(flag&020 && board[8]==1 && board[9]==1 && board[10]==1) i =+ 20; /* * kingside ability */ if(flag&010 && board[13]==1 && board[14]==1 && board[15]==1) i =+ 20; /* * if both */ if(i == 40) i = 22; /* * if castled, * keep pawns in */ if(bkpos==2) if(board[10]==1 && (board[8]==1 || board[8+8]==1) && (board[9]==1 || board[9+8]==1)) i =+ 40; if(bkpos==6) if(board[13]==1 && (board[14]==1 || board[14+8]==1) && (board[15]== -1 || board[15+8]== -1)) i =+ 40; return(i);}/* * prance * a percentage if the * piece on the move * can be driven back * by a smaller piece */bheur4(){ 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; wagen(); i = 0; while(p2 != lmp) { p2++; wmove(*p2++); i = xheur(ploc); wremove(); if(i) break; } lmp = p1; return(-i);}/* * control * center control * opening * beginning * king control * middle * end */bheur5(){ return(-wheur5());}/* * mate threat * bad to capture */bheur6(){ int i; *amp++ = -1; i = 0; if(battack(wkpos)) if(mate(2, 0)) i =+ 15; amp--; return(i);}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -