我正在尝试用Visual Basic制作国际象棋多人游戏。它是一个双人游戏,将以正常方式播放,甚至不通过局域网播放 到目前为止,我已经完成了电路板的设计。
我的逻辑是:
首先,在单击任何方块时,click事件处理程序将检查一个块是否位于该方块上。如果没有,则检查是否要将一块移动到该方块。如果两者都是负数,那么它什么都不做。
现在,问题是,如何编写点击事件?另外,我使用2维数组代表了电路板。但是我如何在每次搬家后更新头寸?我如何检查是否正在执行合法移动?我想要添加的另一件事是,无论何时单击一个片段,都应突出显示可能的合法方格。
为此,我所做的是,对于任何广场上的每一次点击事件,它检查是否有一块。如果有一个片段,那么它使用If-Else-If逻辑突出显示该片段的所有可能移动,但结果太麻烦且太长。另一个出现的问题是,如果用户点击一个空方块将其移动到那里,我怎么知道?
请帮帮我。
答案 0 :(得分:1)
“但我如何在每次搬家后更新头寸?”
即将移动的作品:
检查这件作品是否可以这样移动。 (就像主教只能对角移动一样)
检查你的团队是否在你要移动的位置上。
制作移动已经发生的第二个数组。
检查此举是否合法。 (轮到你,但是你的国王只需一举就可以杀人)
要检查这一点,您需要:
获得国王的位置
然后查找对手的所有可能动作
检查移动是否可以降落在国王的位置。
答案 1 :(得分:0)
这个问题并不适合Stack Overflow,但我会给你一个指针:
您需要创建一个名为ChessPiece
这将包含IsWhite
和LocationX
以及LocationY
等属性,用于存储其在棋盘上的当前位置以及PieceType,它将是这样的枚举:
Public Enum ChessPieceType
King
Queen
Bishop
Pawn
'etc
End Enum
你需要创建一些这些类的数组,以便你的棋盘上每个棋子都有一个,你可以在游戏开始时设置这些位置。
当用户试图移动一块时,你会检查PieceType枚举,以确保棋子类型实际上可以移动到那里,然后检查那个方块上没有自己的碎片等等。