我正在尝试创建一个程序,显示正在进行的国际象棋游戏的当前板。该板以阵列形式给出:
0空,
1白色典当,
2白鹿,
3白骑士,
4白主教,
5白女王,
6白王,
7黑棋子,
8 Black Rook,
9黑骑士,
10位黑主教,
11黑女王,和
12黑王。
我想知道如何获取在数组中随机位置给出的这些数字并将它们转换为给定的图像文件。每件作品都有自己独立的图像文件,并以电路板为背景。我已经将图像缩小到合适的尺寸,但我不确定如何将每个图像放在板上的正确位置。我该怎么做呢?
例如,黑色棋子作为图像'b_pawn.png',棋盘已经使用'checkerboard.m'创建。
答案 0 :(得分: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