#acl All: == 盤の表現 == 整数型の2次元配列 ban で盤面の状態を表すことにします。 まず、各ピースに番号をつけます。 . 左上から0,1,2,...と図の順につけます。 . 右下が最後で15になります。 . {{attachment:game0s.png}} . [[attachment:game0.png]] . {{attachment:game4.png}} {{{#!java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Game12 extends JPanel implements MouseListener { static final int pSize = 100; static final int nx = 4; static final int ny = 4; Image img; int mx = 0; int my = 0; int[][] ban= {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}, {12,13,14,15}}; public static void main(String[] args) { ... } Game12() { ... } public void paintComponent(Graphics g) { int i, j, x, y; for(i = 0; i < ny; i++) for(j = 0; j < nx; j++) { x = ??? ; y = ??? ; g.drawImage(img, i*pSize, j*pSize, (i+1)*pSize, (j+1)*pSize, x*pSize, y*pSize, (x+1)*pSize, (y+1)*pSize, this); } g.setColor(Color.orange); g.drawRect(mx, my, pSize, pSize); } public void mousePressed(MouseEvent e) { mx = e.getX(); my = e.getY(); repaint(); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } } }}}