Hallo Leute,
Unser Prof. hat uns eine Musterlösung für das Memory Applet gegeben ich kann den Code aber nicht ganz nachvollziehen, da ich die letzte Vorlesung verpasst habe.
Wäre nett wenn sich jemand die Mühe machen könnte und den Code mit Kommentaren versehen könnte, sodass ich ihn nachvollziehen könnte.
Achja btw. wie würdet ihr denn vorgehen, wenn ihr die Zahlen durch Bilder oder Text ersetzen wollt?
Ich wäre dankbar für ein paar Tipps.
Unser Prof. hat uns eine Musterlösung für das Memory Applet gegeben ich kann den Code aber nicht ganz nachvollziehen, da ich die letzte Vorlesung verpasst habe.
Wäre nett wenn sich jemand die Mühe machen könnte und den Code mit Kommentaren versehen könnte, sodass ich ihn nachvollziehen könnte.
Achja btw. wie würdet ihr denn vorgehen, wenn ihr die Zahlen durch Bilder oder Text ersetzen wollt?
Ich wäre dankbar für ein paar Tipps.
Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class Memory extends Applet implements ActionListener {
Button b[] = new Button[20];
Panel bereich1 = new Panel();
Panel bereich2 = new Panel();
Button start1 = new Button("Spiel starten!");
Button memory;
boolean isOpen;
public void init() {
add(bereich2);
add(bereich1);
bereich2.add(start1);
start1.addActionListener(this);
bereich1.setLayout(new GridLayout(5, 4, 4, 4));
bereich1.setEnabled(false);
for (int i = 0; i < 20; i = i + 1) {
b[i] = new Button(" ");
b[i].setBackground(Color.YELLOW);
bereich1.add(b[i]);
b[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent e) {
final Button btn = (Button) e.getSource();
if (e.getSource().equals(start1)) {
stellen();
bereich1.setEnabled(true);
start1.setEnabled(false);
return;
}
if (isOpen) {
isOpen = !isOpen;
btn.setLabel(e.getActionCommand());
if (btn.getActionCommand().equals(memory.getActionCommand())) {
System.out.println("Yeaah ein Paar gefunden!");
btn.setEnabled(false);
memory.setEnabled(false);
} else {
Timer t = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
memory.setLabel("");
btn.setLabel("");
}
});
t.setRepeats(false);
t.start();
}
} else {
btn.setLabel(e.getActionCommand());
memory = btn;
isOpen = !isOpen;
}
}
public void stellen() {
int n = 0;
int merke;
while (n < 20) {
merke = 0;
double z = Math.random();
int z10 = (int) (z * 10);
b[n].setActionCommand("" + z10);
for (int j = 0; j < n; j++) {
if (b[n].getActionCommand().equals(b[j].getActionCommand()))
merke = merke + 1;
}
if (merke < 2)
n = n + 1;
}
}
}