我正在尝试使用Windows窗体单独通过Visual Basic编写国际象棋游戏。我是编程的初学者,想要一些帮助。 到目前为止,我已经尝试查看数组表示并分配片段值。但我不确定如何从头开始编程工作棋盘。
答案 0 :(得分:1)
虽然这可能有点迟了,但我会尽力回答你的问题。
首先,您必须决定要使用哪个内部电路板表示。
国际象棋编程有三种主要类型: - 2维8乘8整数数组,其中x表示列,y表示行,相应的整数包含表示piecetype =>的数字。易于理解和处理 - 1维120整数数组,使用10y + x作为arrayindex调用字段来获取和设置pieces =>有点难以处理,但执行速度更快 - 双板,这是更高级的东西,你不需要你的第一个引擎
我建议你使用第一个选项,因为你可以很容易地理解和调试它。
在你做出关于内部处理的决定之后,你将不得不看看gui。我推荐一个pictureBox,但是也可以使用panle等。
为了在屏幕上显示Board,您为[在此输入您选择的组件] .OnPaint()创建了一个新的覆盖。首先,你画一个棋盘,然后你遍历你的数组,你将当前作品的图片绘制到[组件]。与/ 8 * X和[组件] .Height / 8 * Y.
如果你有了它,你的董事会将在重新粉刷时被吸引到你的表格中。
我无法描述如何在这里写一个全新的国际象棋程序,因为它永远需要我。我想了解国际象棋程序在移动生成和搜索方面是如何工作的,我推荐chessprogramming wiki。
希望这段相当长的描述能帮到你。
答案 1 :(得分:0)
我使用Excel VBA编写了一个2人的Chess热门游戏,为什么不在尝试这个之前再转向Windows Forms(这将证明更复杂)?它使用事件过程,模块,类和用户表单。它有一个经典的8x8板,以单元格表示,并使用形状作为碎片。您可以从以下网站下载:
http://excelvbachess.wikidot.com
您可以使用Visual Basic编辑器查看注释代码 - 它总共约有6,000行VBA代码。我使用课程模块来模拟不同的部分(Pawn,Rook,Knight,Bishop,Queen,King),女王继承了Bishop和Rook的一些动作。模特检查,绝对钉扎和将死是挑战的一部分,以及特殊动作,如Castling,En Passant和Pawn Promotion。
这又是很晚了,但我希望它能给你(或其他人)一些关于如何开始的想法。