0

我正在尝试创建一个程序来显示正在进行的国际象棋游戏的当前棋盘。棋盘以数组形式给出: 0 空,1 白兵,2 白车,3 白骑士,4 白主教,5 白后,6 白王,7 黑兵,8 黑车,9 黑骑士,10 黑主教、11 黑皇后和 12 黑国王。

我想知道如何获取在数组中随机位置给出的这些数字并将它们转换为给定的图像文件。每件作品都有自己的单独图像文件,并且板将作为背景。我已经将图像缩小到合适的尺寸,但我不确定如何将每个图像放置到板上的正确位置。我该怎么做呢?

例如,给定一个黑色棋子作为图像'b_pawn.png'和棋盘已经使用' checkerboard.m' 创建。

4

1 回答 1

0

您已经将不同的棋子编码为数字(0 表示空,1 表示白棋等)。所以您需要做的就是将这些数字映射到相应的图像文件中。这可以使用元胞数组来完成:

images = {
    'w_pawn.png' % MATLAB indexing starts at 1
    'w_rook.png'
    % ... fill in other filenames here
};
piece = board(i, j); % Get piece number at location i, j
                     % Update this to fit your code
if piece > 0
    % Field is not empty
    filename = images{piece};
    % ... display image here
else
    % Field is empty
    % ... clear field here
end
于 2013-08-06T05:54:04.807 回答