#include "stdafx.h" #include "FiveStone.h" #include "FiveKernel.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// FiveKernel::FiveKernel() { const char * readstring[9]={ "长连","五","活四","冲四","活三","冲三","活二", "可能为五","不可能为五" }; int ItemNum; FILE * f; //read opentable file f=fopen("openlib.txt","r"); fscanf(f,"%3x\n", &ItemNum); int j; for (int i=0;i=3280){ ValueTable[6560-i][j]+=(k+1); } break; } } } } fclose(f); Result=rsNotPlayed; } FiveKernel::~ FiveKernel() { } bool FiveKernel::NewGame(HARDLEVEL hardlevel, RULE rule) { if (Result==rsNotOut){ if (IDYES!=MessageBox(GetActiveWindow(), "Are you sure to cancel the curre nt game?","New game",MB_YESNO)){ return false; } } HardLevel=hardlevel; Rule=rule; HandLimit=(rule!=rlNormal); Result=rsNotOut; int i,j; //initialize Board for (i=0;i<16;i++){ for (j=0;j<16;j++){ Board[i][j]=vlCanBeFive*16+vlCanBeFive; } } StepNum=0; Turn=tnBlackTurn; return true; } bool FiveKernel::InputChess(POS pos) { if ((_ValidPos(pos))&&((Board[pos.x][pos.y]>>4)>=1)&&(Result==rsNotOut)){ BYTE value=(Turn==tnBlackTurn)?((Board[pos.x][pos.y]>>4)) :((Board[pos.x][pos.y]&0x0f)); if (value==vlHand...