OK, jag gillar iden med enum och klasser. Jag läste på lite och tror att jag har fattat hur den biten går till. Jag är däremot inte helt säker på att jag gör rätt när jag försöker använda mig av toArray för att flytta den shufflade arraylistan till en nyskapad array. Stämmer det här?
java.util.ArrayList farger = new java.util.ArrayList(16);
enum Kort{bla, rod, gron, gul, vit, svart, lila, rosa}
Class MemoryKort{
public String namn;
public Kort farg;
}
Class MemoryBaksida{
public String namn;
public Baksida farg;
}
farger.add(bla, bla, rod, rod, gron, gron, gul, gul, vit, vit, svart, svart, lila, lila, rosa, rosa);
java.util.Collections.shuffle(List farger);
//vid det laget har jag en arraylist med 16 element = 2 exemplar vardera av 8 färger, i slumpad ordning
String[] tabellen = new String[16];
farger.toArray[] tabellen;
//skapar arrayen tabellen och arraylistans element läggs i denna
Sen undrar jag hur jag ska visa korten i arrayen för användaren. Kan jag använda den kod jag hade tidigare
initComponents();
{
MemoryImage mi = new MemoryImage( tabellen[i] );
Spelplan.add( mi );
mi.button.addActionListener( new ButtonActionListener(mi) );
}
}
MemoryImage clickedFirst;
MemoryImage clickedSecond;
class ButtonActionListener implements ActionListener{
MemoryImage memoryImage;
ButtonActionListener(MemoryImage mi){
this.memoryImage = mi;
}
public void actionPerformed(ActionEvent e) {
if ( clickedFirst == null ) {
clickedFirst = memoryImage;
memoryImage.showImage();
return;
}
if ( clickedSecond == null ){
clickedSecond = memoryImage;
return;
}
// tredje klicket.
// lika
memoryImage.setVisible(false);
// olika memoryImage.showBaksida();
}
}
och så i MemoryImage.java skriva
public class MemoryImage extends javax.swing.JPanel {
public int imageNumber;
public static final String[] Kort = {"bla.gif", "gul.gif", "rod.gif", "gron.gif", "vit.gif", "svart.gif", "rosa.gif", "lila.gif"}
public static final String[] Baksida = baksida.gif;
/**
* Creates new form MemoryImage
*/
public MemoryImage(int imageNumber) {
this.imageNumber = imageNumber;
initComponents();
URL bildUrl = getClass().getResource("memory/images/"+ "bildnamnet" );
button.setIcon( new ImageIcon( bildUrl ));
URL baksideURL = getClass().getResource("memory/images/"+ "baksida.gif" );
button.setIcon( new ImageIcon( bildUrl ));
}
public void showBaksida(){
button.setIcon( new ImageIcon( baksideUrl ));
}
public void showImage(){
button.setIcon( new ImageIcon( bildUrl ));
}
}