小棋种-亚马逊棋-


此code仅限于在做小棋种的童靴,能看懂就看懂,看不懂供参考,亚马逊棋~
资源截图
代码片段和文件信息
#ifndef _EVALUATE_CPP_
#define _EVALUATE_CPP_

#include “define.h“
#include “evaluate.h“
#include
#include
const int inf = 0xfffffff;
const double EQUAL = 0.2;
extern int dt[2][8];
//r_valuew_valuef_value,用于临时存储Qmove,Kmove,灵活度计算时产生的临时数据
MapType pr_valuew_valuef_value;

//队列Q在计算灵活度时使用
bird_queue Q;
////////***************************************//////
////////////*********************************///////
void calc_value(int cMapType &vint mode)
{
int ijkp;
int xfyftxtynxny;
bool vis[10][10];

if (c == RED) p = 0;
else p = 4;

for (k=0;k<4;++k) {
xf = posx[p+k];
yf = posy[p+k];
memset(vis0sizeof(vis));
vis[xf][yf] = 1;
v[xf][yf] = 0;
Q.push(xfyf);
while(!Q.empty()) {
tx = Q.front().x;
ty = Q.front().y;
Q.pop();
for (i = 0;i<8;++i) {
nx = tx + dt[0][i];
ny = ty + dt[1][i];
while( ismove(nxny) ) {
if (vis[nx][ny] == 0) {
vis[nx][ny] = 1;
if (v[nx][ny] > v[tx][ty] + 1)
v[nx][ny] = v[tx][ty] + 1;
Q.push(nxny);
}
if (mode == KVALUE)
break;
nx += dt[0][i];
ny += dt[1][i];
}
}
}
}
return;
}

////////***************************************////
inline double e_max(double xdouble y){return x>y?x:y;}
inline double e_min(double xdouble y){return x/* t = t1*((1.0)/(w+1.0))
  + c1*((w*0.5)/(w+1.0))
  + c2*((w*0.3)/(w+1.0))
  + t2*((w*0.2)/(w+1.0));*/
double f1(double w)
{
double temp;
temp=(1.0)/(sqrt(w)+1.0);
return temp;
}
double f2(double w)
{
double temp;
temp=(w*0.3)/(w+1.0);
return temp;
}
double f3(double w)
{
double temp;
temp=(w*0.2)/(w+1.0);
return temp;
}
double f4(double w)
{
double temp;
temp=(0.8)/(sqrt(w)+1.0);
return temp;
}
double evaluate_jens(int color)
{
int ijkf_cnt;
double t1t2c1c2wtmalph_ralph_w;
t1 = t2 = c1 = c2 = w = t = m = alph_r = alph_w = 0;
for (i=0;i<10;++i)
for (j=0;j<10;++j)
r_value[i][j] = w_value[i][j] = inf;
calc_value(REDr_valueQVALUE);
calc_value(WHITEw_valueQVALUE);
/////////////////////以下计算t1
for (i=0;i<10;++i)
for (j=0;j<10;++j)
if(r_value[i][j]==w_value[i][j])
if(r_value[i][j]==inf)continue;
else  t1+=EQUAL;
else 
if (r_value[i][j]<=w_value[i][j])t1+=1;
else t1+=-1;
/////////////////////以下计算c1
for (i=0;i<10;++i)
for (j=0;j<10;++j)
if(r_value[i][j]==w_value[i][j])continue;
else 
if(r_value[i][j]==inf) c1+= -pow(2.0-w_value[i][j]);
else if(w_value[i][j]==inf) c1+=  pow(2.0-r_value[i][j]);
 else c1+=pow(2.0-r_value[i][j])-pow(2.0-w_value[i][j]);
/////////////////////以下计算w
for (i=0;i<10;++i)
for (j=0;j<10;++j)
 w+=pow(0.5abs(r_value[i][j]-w_value[i][j]));
///////////////////////////////////////////////////////////////////////////
calc_value(REDr_valueKVALUE);
calc_value(WHITEw_valueKVALUE);
/////////////////////以下计算t2
for (i=0;i<10;++i)
for (j=0;j<1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1075040  2011-08-10 16:13  movetest0.7 - 副本Debugmovetest.ilk

     文件    2509824  2011-08-10 16:13  movetest0.7 - 副本Debugmovetest.pdb

     文件      15554  2011-07-26 20:14  movetest0.7 - 副本movetestDebugBuildLog.htm

     文件       9374  2011-08-10 16:13  movetest0.7 - 副本movetestDebugcl.command.1.tlog

     文件      53570  2011-08-10 16:13  movetest0.7 - 副本movetestDebugCL.read.1.tlog

     文件       8154  2011-08-10 16:13  movetest0.7 - 副本movetestDebugCL.write.1.tlog

     文件      28436  2011-08-10 16:13  movetest0.7 - 副本movetestDebugevaluate.obj

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.2752-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.2752-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.2752.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.2752.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3428-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3428-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3428.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3428.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3700-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3700-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3700.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3700.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3900-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3900-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3900.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.3900.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.4256-cvtres.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.4256-cvtres.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.4256.read.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.4256.write.1.tlog

     文件          2  2011-08-10 16:13  movetest0.7 - 副本movetestDebuglink.4924-cvtres.read.1.tlog

............此处省略88个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)