制作国际象棋多人游戏

时间:2012-06-19 07:08:32

标签: vb.net chess

我正在尝试用Visual Basic制作国际象棋多人游戏。它是一个双人游戏,将以正常方式播放,甚至不通过局域网播放 到目前为止,我已经完成了电路板的设计。

我的逻辑是:
首先,在单击任何方块时,click事件处理程序将检查一个块是否位于该方块上。如果没有,则检查是否要将一块移动到该方块。如果两者都是负数,那么它什么都不做。

现在,问题是,如何编写点击事件?另外,我使用2维数组代表了电路板。但是我如何在每次搬家后更新头寸?我如何检查是否正在执行合法移动?我想要添加的另一件事是,无论何时单击一个片段,都应突出显示可能的合法方格。

为此,我所做的是,对于任何广场上的每一次点击事件,它检查是否有一块。如果有一个片段,那么它使用If-Else-If逻辑突出显示该片段的所有可能移动,但结果太麻烦且太长。另一个出现的问题是,如果用户点击一个空方块将其移动到那里,我怎么知道?

请帮帮我。

2 个答案:

答案 0 :(得分:1)

“但我如何在每次搬家后更新头寸?”

即将移动的作品:

检查这件作品是否可以这样移动。 (就像主教只能对角移动一样)

检查你的团队是否在你要移动的位置上。

制作移动已经发生的第二个数组。

检查此举是否合法。 (轮到你,但是你的国王只需一举就可以杀人)

要检查这一点,您需要:

获得国王的位置

然后查找对手的所有可能动作

检查移动是否可以降落在国王的位置。

答案 1 :(得分:0)

这个问题并不适合Stack Overflow,但我会给你一个指针:

您需要创建一个名为ChessPiece

的类

这将包含IsWhiteLocationX以及LocationY等属性,用于存储其在棋盘上的当前位置以及PieceType,它将是这样的枚举:

Public Enum ChessPieceType
    King
    Queen
    Bishop
    Pawn
    'etc
End Enum

你需要创建一些这些类的数组,以便你的棋盘上每个棋子都有一个,你可以在游戏开始时设置这些位置。

当用户试图移动一块时,你会检查PieceType枚举,以确保棋子类型实际上可以移动到那里,然后检查那个方块上没有自己的碎片等等。