gpt4 book ai didi

c# - 使用图片框和矩形制作棋盘,如何初始化?

转载 作者:行者123 更新时间:2023-11-30 22:16:27 24 4
gpt4 key购买 nike

我正在制作一个 C# 国际象棋游戏,因此我可以进一步练习使用该语言进行编码。我使用的是 Windows 窗体,我使用的是 45x45 .png 图标。我制作了我的图片框,以便板上的每个位置都是 50x50 像素,使图片框/板成为 400x400 正方形。我想弄清楚的是,如何初始化电路板,以便我可以使用矩形类型的二维数组移动棋子。这样,板上的每个位置都是一个定义为 50x50 正方形的矩形。到目前为止我的代码,如果我遗漏了一些重要的东西,请告诉我:

class Board//this class represents the board 
{
private Rectangle[,] chessBoard = new Rectangle[8, 8]; //a 2d array of rectangles


public void initBoard()//this method will initialize the picturebox/board
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
chessBoard[x, y] = new Rectangle(x * 50, y * 50, 50, 50);


}
}

}

}

最佳答案

我建议虽然您的方法可能会让您到达那里,但大多数国际象棋游戏不会为图像使用单独的 png,而是您将拥有一个具有 2x6 瓦片矩阵的单个图像并使用图像中的偏移量来选择正确的瓦。您可以将电路板存储为 64 个元素的一维数组。它的默认启动安排可能类似于...

board = [00,01,02,03,04,02,01,00,
05,05,05,05,05,05,05,05,
-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,
15,15,15,15,15,15,15,15,
10,11,12,13,14,12,11,10]

其中 -1 是空白方 block ,00-15 是 block 图像的偏移索引。如:

00 10 = wr br
01 11 = wk bk
02 12 = wb bb
03 13 = wq bq
04 14 = wK bK
05 15 = wp bp

当玩家移动时,您只需调用一个方法来确定移动是否合法,如果合法,目的地是否被占用?捕获!否则设置 board[destination] = board[origin],设置 board[origin] = -1。

可能需要仔细检查我的 K 和 Q 位置,希望我是有道理的 :)

关于c# - 使用图片框和矩形制作棋盘,如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com