我目前必须制作一个四方棋盘并沿着向上,向下,向左,向右,向上的方向向上移动一块棋子,向上移动,向下向下移动,向下移动诊断。我把电路板和按钮布好了,但是我对移动这件作品很困惑。 我只需要移动一件。如果我无法正确行动,另一个令我困惑的任务是,如何找到它呢?
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class javaAssignment extends JFrame implements ActionListener {
JPanel top, bottom, panel1, panel2, panel3, panel4, buttons;
JButton up, down, right, left, lud, rud, rdd, ldd;
JLabel l1, l2, l3, l4;
javaAssignment() {
Container c = getContentPane();
// Import image.
Icon chess = new ImageIcon("images/piece.png");
// Create panels.
top = new JPanel();
bottom = new JPanel();
buttons = new JPanel();
// Create chess board.
l1 = new JLabel(chess);
l2 = new JLabel();
l3 = new JLabel();
l4 = new JLabel();
panel1 = new JPanel();
panel1.setBackground(Color.black);
panel1.setOpaque(true);
panel1.setPreferredSize(new Dimension(90, 90));
panel2 = new JPanel();
panel2.setBackground(Color.white);
panel2.setOpaque(true);
panel2.setPreferredSize(new Dimension(90, 90));
panel3 = new JPanel();
panel3.setBackground(Color.white);
panel3.setOpaque(true);
panel3.setPreferredSize(new Dimension(90, 90));
panel4 = new JPanel();
panel4.setBackground(Color.black);
panel4.setOpaque(true);
panel4.setPreferredSize(new Dimension(90, 90));
// Create buttons.
up = new JButton("Up");
down = new JButton("Down");
right = new JButton("Right");
left = new JButton("Left");
lud = new JButton("Left Up Diag");
ldd = new JButton("Left Down Diag");
rud = new JButton("Right Up Diag");
rdd = new JButton("Right Down Diag");
// Add panels and buttons.
panel1.add(l1);
panel2.add(l2);
panel3.add(l3);
panel4.add(l4);
top.add(panel1);
top.add(panel2);
bottom.add(panel3);
bottom.add(panel4);
buttons.add(up);
buttons.add(down);
buttons.add(left);
buttons.add(right);
buttons.add(lud);
buttons.add(ldd);
buttons.add(rud);
buttons.add(rdd);
c.add(top);
c.add(bottom);
c.add(buttons);
// Set Layouts.
top.setLayout(new GridLayout(2,3));
bottom.setLayout(new GridLayout(2,3));
buttons.setLayout(new GridLayout(2,3));
c.setLayout(new FlowLayout());
// Display frame.
setVisible(true);
setSize(600, 300);
}
public static void main(String[] args) {
javaAssignment output = new javaAssignment();
}
public void actionPerformed(ActionEvent e) {
}
}
答案 0 :(得分:0)
你可以创建一个二维char数组(char因为你可以使用diffrend chars来表示不同的数字)并将每个char设置为'e',其中chessfield是emtpy,其他你有一个'k'例如for king(只是例子)。
有2个for循环你可以检查数组中的每个字段是否有“片段”,所以如果有一个'k'为王你可以在那个位置画一个王(你得到的位置
x = i * square_size;
y = j * square_size;
当你为vars时我是i和j)。
当你想移动一块时,你必须检查这块是否仍然在你的数组边界内(你必须使数组与你的象棋场一样大)
要获得更多帮助,我需要更多详细信息