Esempio n. 1
0
VALUE StoreValueOfPosition(POSITION position, VALUE value)
{
	showStatus(Update);

	if(gSymmetries)
		position = gCanonicalPosition(position);
	AnalyzePosition(position,value);
	return db_functions->put_value(position,value);
}
Esempio n. 2
0
UINT64
SetSlot(
        UINT64 position,
        UINT8 index,
        UINT64 value
        )
{
	if(gSymmetries)
		position = gCanonicalPosition(position);
	if(index == gValueSlot)
		AnalyzePosition(position, value);
	return db_functions->set_slice_slot(position, index, value);
}
Esempio n. 3
0
// preconditions: computer has no book
void CalcMPCStats(CPlayerComputer* computer, int height) {
	FILE* 	cpFile;
	CBitBoard bb;
	int		nbbs[60], i, iPos;
	const int iPosMin=159;	// start at this line, useful if stopping and restarting
	CQPosition pos;
	CCalcParams *cpOld=computer->pcp;
	CHeightInfo hi(height, 0, false);
	CCalcParamsFixedHeight cp(hi);
	computer->pcp=&cp;
	computer->cd.fsPrint=0;

	// header info
	std::cout << 3 << " " << height << " " << kStoneValue << "\n";

	// clear computer's and params
	//computer->cd.iPruneMidgame=computer->cd.iPruneEndgame=0;

	// clear position counts and init
	for (i=0; i<60; i++)
		nbbs[i]=0;
	iPos=0;

	// read positions from file; analyze if we should
	std::string fn(fnBaseDir);
	fn+="captured.pos";
	if ((cpFile=fopen(fn.c_str(),"rb"))) {
		while (bb.Read(cpFile)) {
			pos.Initialize(bb, true);
			if (nbbs[bb.NEmpty()]++ < kMaxPositions)
				if (iPos++>=iPosMin)
					AnalyzePosition(computer, pos);
		}
		fclose(cpFile);
	}

	// restore computer's book and params
	computer->pcp=cpOld;
}