如何用VB编制围棋?

情况描述:第一次使用VB做游戏我是用自己画的背景图片当棋盘的。有黑白子的图片素材。面临问题:1.用背景图片当棋盘是否可行?(如果可行,该用什么工具布置?)2.如何下子?如... 情况描述:
第一次使用VB做游戏我是用自己画的背景图片当棋盘的。有黑白子的图片素材。

面临问题:
1. 用背景图片当棋盘是否可行?(如果可行,该用什么工具布置?)
2. 如何下子?如何对应鼠标点击下子?
3. 围棋吃子规则,究竟该以什么样的代码执行?(如此繁杂)在下苦思冥想。。。无法想象,如何把那么多种吃子方式执行。。。(惭愧矣,掩面买豆腐,准备撞死)
展开
 我来答
望天涯fgm
推荐于2016-09-19 · TA获得超过309个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:63.2万
展开全部
围棋可不好编,特别是附带AI的话,算法如果没有借鉴,自创的话任务量很大,且不一定成功,我没这方面实践经验,但对于你的思路可以给你以下建议
1,第一条,是不可行的,建议你用GDI绘图来绘制棋盘,这样可以判断坐标,方便落子
2,棋子同样采用动态绘图,填充黑白两色,落子与清除会很简单,只要在鼠标点击事件中,重绘棋盘,在鼠标对应坐标位置新画一个棋子就好
3,围棋我没研究过,算法不好说,但如果只是做个双人围棋,不涉及人机对战,在前两条的基础上可以实现你想要的原则,但涉及人机对战,AI算法将是最大的难题,勉强编的话,机器会蠢如猪
另外不要自惭形秽,编程涉及多个方面,有些人玩数据库,有些人玩绘图,有些人乐于深挖控件的内行,还有些人喜欢研究高等数学的算法,每个方面都需要积累,特别是自己积累的类库,这些类库是自己长期收集或者自创的函数与类的集合,高手之所以厉害,除了自己勤奋乐于研究外,还因为日积月累和站在前人肩上
Archlen
2016-01-01 · TA获得超过260个赞
知道小有建树答主
回答量:297
采纳率:100%
帮助的人:157万
展开全部
你说的东西,我明白了,不是深蓝一样,搞围棋智能对弈软件。只是一个用来下棋的工具,这个没有这么复杂了。我以前刚学flash的时候就用flash做过可以下棋的flash。
所以,首先要有信心,我来说点具体的。
用picturebox做框架,你可以给这个弄张图片。落子显示图片调用鼠标事件。棋子先加载好图片,弄成控件数组,落子就加一个黑白子图片。
鼠标点击,需要计算是否在交叉点附近,这个判断可以单独做一个函数返回。
一、棋谱
用一个二维数组保存,每次落子后就更新这个二维数组。用1表示黑,-1表示白,0表示空。
二、判断死活
1、一个子的死活;落子位置,周围四个点只要有一个点为0即活。
2、如果周围都不是0,进入遍历,周围四个点当中任意一个和他自身相同值的子是活即活。由于这个遍历函数是在周围都不是0的情况下执行,所有只要周围的子也同样没有气,则会自动递归。
3、建立一个二维数组,保存所有点的死活状况,用来更新棋谱。

三、判断禁着点
1、判断是否劫争; 当盘面上有1个子被提,则记录该点坐标。同时记录落子提吃坐标。如果新落子在刚刚被提位置,且造成对方刚刚落子位置1子被提,则判定为劫争禁手。如非劫争进入下一步。
2、落子后是死棋的,首先判断周围对手棋子是否被吃,如果被吃,更新棋谱。若吃1子,则为劫争记录坐标和手数。(因为劫争记录只在下一手有效,停一手以后还可以吃)。若周围对手没有棋子能被吃,该落点即判断为禁手。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式