电脑围棋程序编写思路
荷蒲 wq.hepu
荷蒲围棋软件的编写思路。
在围棋程序的实现中,较为关键的是围棋电子棋盘的设计。其他所有功能都是围绕围棋电子棋盘展开的。电子围棋盘的核心是围棋棋盘的数据描述。
1、首先定义围棋子信息:
#define EDGE 23 //棋盘最大格数
#define MAXMM 500 //最大手数
//color表示棋子颜,x,y表示在棋盘上的坐标
//num表示下子的顺序。=0表示提前摆放的子。
//zt 表示棋子状态 公租房的申请条件
//qs 表示棋子的气数
//sm 表示有说明信息
typedef struct qizi
{
int color,x,y,num,zt,qs,sm;
} qizi;
2022中考是几月几日吐司的做法qizi qipu[MAXMM]; //重阳节是为了纪念谁?棋谱信息
qizi qipan[EDGE][EDGE]; //棋盘信息
2、紧接着要考虑的是下棋相关信息。
全国限电int nk=0; //显示棋子序号,nk=2显示序号,1=气数
int BoardLines=19; //棋盘线数,默认19
bool ComputerPlaying; //1=该计算机下 0=人下
bool Computerp1=0; //1=计算机下黑 0=人下
bool Computerp2=0; //1=计算机下白 0=人下
int PlayType=0; //2=人-人,1=人-计算机,13=人-网络,0=没有开始,-1=删除棋盘上死子,-2=暂停,3=布黑子,4=布白子,9=演示,11=学习
int PlayType1=0; //2=人-人,1=人-计算机,13=人-网络,0=没有开始,-1=删除棋盘上死子,-2=暂停,3=布黑子,4=布白子,11=学习
int MoveCount,MoveCount1; //计步器,记录落子手数,自然顺序
int Playnum=0,Playnum1=0; //要标识的围棋手数,下棋顺序
int CurrentX; //记录热子X坐标,
int CurrentY; //记录热子Y坐标
char CurrentWho; //记录当前棋子颜,0=黑 1=白 2=空(终局等,待写)
char CurrentWho1; //备份上一次CurrentWho
int timew=0,timeb=0; //计时器设定数据
int sdy1=0,sdy2=0; //学习功能上使用
int gz; //规则0=中国规则,拜年四字祝福语1=日本规则,2=应氏规则
bool plays1=true; //学习持黑
bool plays2=false; //学习持白
3、围棋电子棋盘的数据初始化。
//数据初始化
void wqinit(void)
{
BoardLines=19; //19X19路标准围棋盘
MoveCount=0; //一步棋未下,自然顺序
MoveCount1=0; //一步棋未下
ComputerPlaying=1; //默认电脑执黑先行
CurrentWho=0; //默认黑先; 黑方=0;白方=1;空方=2;
CurrentX=0; //当前一步棋的X坐标,水平从左至右为1...19
CurrentY=0; //当前一步棋的Y坐标,垂直从上到下为1...19
timew=0,timeb=0;
Playnum=0; //下棋顺序
Playnum1=0;
//下面是棋盘初始化
for (int i=0;i<=BoardLines;i++)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论