• 大小: 374KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签:

资源简介

点点连格棋全国二等奖源代码,aloha-beta剪枝,评估,效能还行,二等奖水平。

资源截图

代码片段和文件信息




#include “Dots and Boxes.h“

/////////////////////////////////////////////////////
//
//
// 函数主体,无平台,负责读取对方下子,更新棋局,
// 生成我方招法
//
//
//////////////////////////////////////////////////////

//全局声明
NODE Square[7][7];
EDGE Horizon[6][6]; //实际中的横边[6][5]
EDGE Vertical[6][6]; //实际中的竖边[5][6]
int myturn;
int xy;
int Search(int deepint alphaint betaint turn);
void Final_Occupy();
LIST Bestmove;
void printdegree();
int mboxes=0yboxes=0;
int undo_type;
void undoit(int type int x int y);

//悔棋函数

void undoit(int type int x int y)
{
if(type==0)
{
Horizon[x][y].ismove=1;
Square[x+1][y+1].degree++;
if(Square[x+1][y+1].owner!=-1)
{
Square[x+1][y+1].owner=-1;
}
Square[x][y+1].degree++;
if(Square[x][y+1].owner!=-1)
{
Square[x][y+1].owner=-1;
}
}
else
{

Vertical[x][y].ismove=1;
Square[x+1][y+1].degree++;
if(Square[x+1][y+1].owner!=-1)
{
Square[x+1][y+1].owner=-1;
}
Square[x+1][y].degree++;
if(Square[x+1][y].owner!=-1)
{
Square[x+1][y].owner=-1;
}
}

}


int FoundC()
{
int ijk;
for(i=1;i<6;i++)
{
for(j=1;j<6;j++)
{
if(Square[i][j].degree==1)
{
for(k=0;k<=3;k++)
{
if(Square[i][j].edge[k]->ismove==1)
{
Square[i][j].edge[k]->ismove=0;
Square[i][j].degree=0;
Square[i][j].owner=myturn;
mboxes++;
if(k==0)
{
Square[i][j-1].degree--;
if(Square[i][j-1].degree==0)
{
Square[i][j-1].owner=myturn;
mboxes++;
}
}
else if(k==1)
{
Square[i-1][j].degree--;
if(Square[i-1][j].degree==0)
{
Square[i-1][j].owner=myturn;
mboxes++;
}
}
else if(k==2)
{
Square[i][j+1].degree--;
if(Square[i][j+1].degree==0)
{
Square[i][j+1].owner=myturn;
mboxes++;
}
}
else if(k==3)
{
Square[i+1][j].degree--;
if(Square[i+1][j].degree==0)
{
Square[i+1][j].owner=myturn;
mboxes++;
}
}

return 1;
}
}
}
}
}
return 0;
}
int randmove()
{
int i j k;
int etype x y;    //etpye边的类型,xy坐标
//判断是否已经有C格,有就封上
for(i=1;i<=6;i++)
{
for(j=1;j<=6;j++)
{
if(Square[i][j].degree==1)
{
for(k=0;k<=3;k++)
{
if(Square[i][j].edge[k]->ismove==1)
{
Square[i][j].edge[k]->ismove=0;
Square[i][j].degree=0;
Square[i][j].owner=myturn;
mboxes++;
if(k==0)
{
Square[i][j-1].degree--;
if(Square[i][j-1].degree==0)
{
Square[i][j-1].owner=myturn;
mboxes++;
}
}
else if(k==1)
{
Square[i-1][j].degree--;
if(Square[i-1][j].degree==0)
{
Square[i-1][j].owner=myturn;
mboxes++;
}
}
else if(k==2)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-02-18 20:23  点点连格棋9月\
     目录           0  2012-02-18 20:23  点点连格棋9月\Debug\
     文件       20150  2011-09-11 22:49  点点连格棋9月\Debug\Dots and Boxes.obj
     文件           0  2011-09-11 22:49  点点连格棋9月\Debug\Dots and Boxes.sbr
     文件       25771  2011-09-11 22:49  点点连格棋9月\Debug\Evaluate.obj
     文件           0  2011-09-11 22:49  点点连格棋9月\Debug\Evaluate.sbr
     文件       40343  2011-09-11 22:49  点点连格棋9月\Debug\Final_Occupy.obj
     文件           0  2011-09-11 22:49  点点连格棋9月\Debug\Final_Occupy.sbr
     文件        2990  2011-09-11 22:49  点点连格棋9月\Debug\Move.obj
     文件           0  2011-09-11 22:49  点点连格棋9月\Debug\Move.sbr
     文件        6505  2011-09-11 23:27  点点连格棋9月\Debug\Search.obj
     文件           0  2011-09-11 23:27  点点连格棋9月\Debug\Search.sbr
     文件       50176  2011-09-11 23:27  点点连格棋9月\Debug\vc60.idb
     文件       53248  2011-09-11 23:27  点点连格棋9月\Debug\vc60.pdb
     文件      132096  2011-09-11 23:27  点点连格棋9月\Debug\点点连格棋.bsc
     文件      249931  2011-09-11 23:27  点点连格棋9月\Debug\点点连格棋.exe
     文件      244812  2011-09-11 23:27  点点连格棋9月\Debug\点点连格棋.ilk
     文件      247172  2011-09-11 22:49  点点连格棋9月\Debug\点点连格棋.pch
     文件      541696  2011-09-11 23:27  点点连格棋9月\Debug\点点连格棋.pdb
     文件       11132  2011-09-09 00:08  点点连格棋9月\Dots and Boxes.cpp
     文件        1707  2011-09-11 21:53  点点连格棋9月\Dots and Boxes.h
     文件       21530  2011-09-11 20:26  点点连格棋9月\Evaluate.cpp
     文件         285  2011-08-30 22:39  点点连格棋9月\Evaluate.h
     文件       36204  2011-09-11 22:38  点点连格棋9月\Final_Occupy.cpp
     文件         554  2011-09-06 17:06  点点连格棋9月\Final_Occupy.h
     文件         832  2011-09-04 20:34  点点连格棋9月\Move.cpp
     文件         113  2011-09-05 19:20  点点连格棋9月\Move.h
     文件        4513  2011-09-12 06:27  点点连格棋9月\Search.cpp
     文件         262  2011-09-11 22:49  点点连格棋9月\Search.h
     文件        4915  2011-08-30 22:39  点点连格棋9月\点点连格棋.dsp
     文件         528  2011-08-30 22:39  点点连格棋9月\点点连格棋.dsw
............此处省略4个文件信息

评论

共有 条评论