Jeg er java-begynder: Jeg har lavet et simpelt skakspil og fået linet alle brikker op (gif-filer). Jeg kan også flytte brikkerne (via listner) - men der er endnu ingen regler for hvordan de enkelte brikker må flytte (har lavet en Super-brik som de enkelte briktyper arver fra), hvordan de slår hinanden eller hvem der har næste tur. Er der nogen der har et bud på hvordan man koder disse ting?
public class Skak extends JFrame implements MouseListener, MouseMotionListener { JLayeredPane layeredPane; /*BNJE: LayeredPanes allow you to place JComponents on top of one another. The LayeredPane is further subdivided into five layers: default, palette, modal, popup and drag.*/ JPanel skakBræt = new JPanel(); JLabel skakBrik; int xAdjustment; int yAdjustment;
private final static int row = 8; // skal jeg bruge disse??? private final static int col = 8; // skal jeg bruge disse??? int board[][] = new int[8][8]; // skal jeg bruge disse???
public Skak() { Dimension brædtStørrelse = new Dimension(400, 400);
// Use a Layered Pane for this this application
layeredPane = new JLayeredPane(); getContentPane().add(layeredPane); layeredPane.setPreferredSize( brædtStørrelse ); layeredPane.addMouseListener( this ); layeredPane.addMouseMotionListener( this ); setTitle("Brian's skakspil");
/* for (int i = 0; i < 64; i++) { JPanel square = new JPanel( new BorderLayout() ); skakBræt.add( square );
int row = (i / 8) % 2; if (row == 0) square.setBackground( i % 2 == 0 ? Color.black : Color.LIGHT_GRAY ); else square.setBackground( i % 2 == 0 ? Color.LIGHT_GRAY : Color.black ); } */
for (int i = 0; i < 64; i++) { JPanel square = new JPanel(new BorderLayout()); skakBræt.add(square);
for (int row = 0; row < 8; row++) { for (int col = 0; col < 8; col++) { if ((i / 8) % 2 == 0) square.setBackground(i % 2 == 0 ? Color.LIGHT_GRAY : Color.black); else square.setBackground(i % 2 == 0 ? Color.black : Color.LIGHT_GRAY); } } // end for row } // Place brikker på brætet (Husk at gif-filerne skal ligger i projektmappen: // Sorte Bønder: JLabel piece = new JLabel( new ImageIcon("SortBonde.gif") ); JPanel panel = (JPanel)skakBræt.getComponent(8); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 9 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 10 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 11 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 12 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 13 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 14 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 15 ); panel.add( piece );
// Sorte Tårne piece = new JLabel( new ImageIcon("SortTaarn.gif") ); panel = (JPanel)skakBræt.getComponent( 0 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortTaarn.gif") ); panel = (JPanel)skakBræt.getComponent( 7 ); panel.add( piece );
// Sorte Springere piece = new JLabel( new ImageIcon("SortSpringer.gif") ); panel = (JPanel)skakBræt.getComponent( 1 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortSpringer.gif") ); panel = (JPanel)skakBræt.getComponent( 6 ); panel.add( piece );
// Sorte Løbere piece = new JLabel( new ImageIcon("SortLoeber.gif") ); panel = (JPanel)skakBræt.getComponent( 2 ); panel.add( piece );
piece = new JLabel( new ImageIcon("SortLoeber.gif") ); panel = (JPanel)skakBræt.getComponent( 5 ); panel.add( piece );
// Sort Dronning piece = new JLabel( new ImageIcon("SortDronning.gif") ); panel = (JPanel)skakBræt.getComponent( 3 ); panel.add( piece );
// Sort Konge piece = new JLabel( new ImageIcon("SortKonge.gif") ); panel = (JPanel)skakBræt.getComponent( 4 ); panel.add( piece );
// Hvide Bønder: piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 48 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 49 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 50 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 51 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 52 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 53 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 54 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)skakBræt.getComponent( 55 ); panel.add( piece );
// Hvide Tårne piece = new JLabel( new ImageIcon("HvidTaarn.gif") ); panel = (JPanel)skakBræt.getComponent( 56 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidTaarn.gif") ); panel = (JPanel)skakBræt.getComponent( 63 ); panel.add( piece );
// Hvide Springere piece = new JLabel( new ImageIcon("HvidSpringer.gif") ); panel = (JPanel)skakBræt.getComponent( 57 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidSpringer.gif") ); panel = (JPanel)skakBræt.getComponent( 62 ); panel.add( piece );
// Hvide Løbere piece = new JLabel( new ImageIcon("HvidLoeber.gif") ); panel = (JPanel)skakBræt.getComponent( 58 ); panel.add( piece );
piece = new JLabel( new ImageIcon("HvidLoeber.gif") ); panel = (JPanel)skakBræt.getComponent( 61 ); panel.add( piece );
// Hvid Dronning piece = new JLabel( new ImageIcon("HvidDronning.gif") ); panel = (JPanel)skakBræt.getComponent( 59 ); panel.add( piece );
// Hvid Konge piece = new JLabel( new ImageIcon("HvidKonge.gif") ); panel = (JPanel)skakBræt.getComponent( 60 ); panel.add( piece );
// piece = new JLabel( new ImageIcon("HvidBonde.gif") ); // panel = (JPanel)skakBrædt.getComponent( 9 ); // panel.add( piece );
// piece = new JLabel( new ImageIcon("HvidLoeber.gif") ); // panel = (JPanel)skakBrædt.getComponent( 5 ); // panel.add( piece ); }
/* public void initSpil() // placer bønderne på skakbrætet { JLabel piece = new JLabel( new ImageIcon() ); for (int i = 0; i < 7; i++ ) { piece = new JLabel( new ImageIcon("HvidBonde.gif") ); panel = (JPanel)super.getComponent( [1][4] ); panel.add( piece );
} } */ /* ** Add the selected chess piece to the dragging layer so it can be moved */ public void mousePressed(MouseEvent e) { skakBrik = null; Component c = skakBræt.findComponentAt(e.getX(), e.getY());
public void mouseClicked(MouseEvent e) {} public void mouseMoved(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {}
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.