1192
コメント:
|
1260
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 19: | 行 19: |
void shokika() { ... spx = yoko-1; spy = tate-1; } |
ピースを動かす
ピースを1つ取り除いてできた空白部分を使って 移動するための処理を記述します。
1 import javax.swing.*;
2 import java.awt.*;
3 import java.awt.event.*;
4
5 public class Game14 extends JPanel implements MouseListener
6 {
7 int haba;
8 int yoko, tate;
9 String fname;
10 Image img;
11 int[][] ban;
12 int spx, spy;
13
14 void shokika()
15 {
16 ...
17 spx = yoko-1;
18 spy = tate-1;
19 }
20
21 Game14()
22 {
23 addMouseListener(this);
24 }
25 public void mousePressed(MouseEvent e)
26 {
27 int x, y, dx, dy;
28
29 x = e.getX() / haba;
30 y = e.getY() / haba;
31 dx = (x<spx) ? -1 : (x>spx) ? 1 : 0;
32 dy = (y<spy) ? -1 : (y>spy) ? 1 : 0;
33 // if(x < spx)
34 // dx = -1;
35 // else if(x > spx)
36 // dx = 1;
37 // else
38 // dx = 0;
39 // if(y < spy)
40 // dy = -1;
41 // else if(y > spy)
42 // dy = 1;
43 // else
44 // dy = 0;
45 if(dx != 0 && dy != 0)
46 return;
47 while (x != spx || y != spy)
48 {
49 ban[spx][spy] = ban[spx+dx][spy+dy];
50 spx = spx + dx;
51 spy = spy + dy;
52 };
53 repaint();
54 }
55
56 public void mouseEntered(MouseEvent e) { }
57 public void mouseExited(MouseEvent e) { }
58 public void mouseReleased(MouseEvent e) { }
59 public void mouseClicked(MouseEvent e) { }