進行中のチェス ゲームの現在のボードを表示するプログラムを作成しようとしています。ボードは配列として与えられます:
0 エンプティ、1 ホワイト ポーン、2 ホワイト ルーク、3 ホワイト ナイト、4 ホワイト ビショップ、5 ホワイト クイーン、6 ホワイト キング、7 ブラック ポーン、8 ブラック ルーク、9 ブラック ナイト、10 ブラックビショップ、11 人のブラック クイーン、12 人のブラック キング。
配列内のランダムな場所で指定されたこれらの数値を取得して、指定された画像ファイルに変換する方法を考えていました。各ピースには独自の個別の画像ファイルがあり、ボードは背景として指定されます。既に画像を適切なサイズに縮小しましたが、各画像をボード上の適切な場所に配置する方法がわかりません。どうすればそれを行うことができますか?
たとえば、黒いポーンがイメージとして与えられます。'b_pawn.png'であり、チェス盤は'checkerboard.m'を使用して既に作成されています。
質問する
604 次
1 に答える
0
すでにさまざまなピースを数値としてエンコードしています (空の場合は 0、白いポーンの場合は 1 など)。したがって、これらの数値を対応する画像ファイルにマップするだけです。これは cell 配列を使用して実行できます。
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 に答える