㈠ 如何用VB编制围棋
你说的东西,我明白了,不是深蓝一样,搞围棋智能对弈软件。只是一个用来下棋的工具,这个没有这么复杂了。我以前刚学flash的时候就用flash做过可以下棋的flash。
所以,首先要有信心,我来说点具体的。
用picturebox做框架,你可以给这个弄张图片。落子显示图片调用鼠标事件。棋子先加载好图片,弄成控件数组,落子就加一个黑白子图片。
鼠标点击,需要计算是否在交叉点附近,这个判断可以单独做一个函数返回。
一、棋谱
用一个二维数组保存,每次落子后就更新这个二维数组。用1表示黑,-1表示白,0表示空。
二、判断死活
1、一个子的死活;落子位置,周围四个点只要有一个点为0即活。
2、如果周围都不是0,进入遍历,周围四个点当中任意一个和他自身相同值的子是活即活。由于这个遍历函数是在周围都不是0的情况下执行,所有只要周围的子也同样没有气,则会自动递归。
3、建立一个二维数组,保存所有点的死活状况,用来更新棋谱。
三、判断禁着点
1、判断是否劫争; 当盘面上有1个子被提,则记录该点坐标。同时记录落子提吃坐标。如果新落子在刚刚被提位置,且造成对方刚刚落子位置1子被提,则判定为劫争禁手。如非劫争进入下一步。
2、落子后是死棋的,首先判断周围对手棋子是否被吃,如果被吃,更新棋谱。若吃1子,则为劫争记录坐标和手数。(因为劫争记录只在下一手有效,停一手以后还可以吃)。若周围对手没有棋子能被吃,该落点即判断为禁手。