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 など)。したがって、これらの数値を対応する画像ファイルにマップするだけです。これは 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 に答える