Hi,
bin gerade dabei ein kleines Memory Spiel zu basteln und hänge da gerade gewaltig an einer Stelle.
Hab die GUI soweit fertig ich habe eine Fläche mit 40 JButtons, durch einen Klick auf den jeweiligen Button wird durch .setText("xxx"); der jeweilige Name der Kachel angezeigt.
Nun muss der Spieler eben 2mal die gleiche Kachel finden.
Ich finde gerade allerdings keine Möglichkeit wie ich es anstelle die Klicks zu zählen und bei 2 Klicks falls die Kacheln nicht übereinstimmen diese wieder um zu drehen oder bei Übereinstimmung zu färben oder auszublenden, ist ja egal.
Hier mal mein bisheriger Code :
Man könnte das bestimmt mit hilfe von Arrays usw. einiges kürzen allerdings spielt das für mich momentan noch nicht so die Rolle, erstmal muss es funktionieren .
Wie ihr vielleicht sehen könnt habe ich schon versucht einen click-Zähler zu nutzen, der dann bei click == 2 evtl. einen UndoManager oder sowas ausführt, da habe ich noch keine genauere Idee.
Allerdings verstehe ich nicht wieso ich mit private int click;
Zwar die Klicks in den actionPerformed-Methoden zählen kann, außerhalb mit System.out.println(click); aber keine Rückmeldung bekomme obwohl ich mich doch in der gleichen Klasse befinde?
Und wie könnte ich die aufeinander folgenden 2 Klicks vergleichen ?
Falls es jemandem Hilfe habe ich die .jar angehängt.
Danke euch.
lg Simon
bin gerade dabei ein kleines Memory Spiel zu basteln und hänge da gerade gewaltig an einer Stelle.
Hab die GUI soweit fertig ich habe eine Fläche mit 40 JButtons, durch einen Klick auf den jeweiligen Button wird durch .setText("xxx"); der jeweilige Name der Kachel angezeigt.
Nun muss der Spieler eben 2mal die gleiche Kachel finden.
Ich finde gerade allerdings keine Möglichkeit wie ich es anstelle die Klicks zu zählen und bei 2 Klicks falls die Kacheln nicht übereinstimmen diese wieder um zu drehen oder bei Übereinstimmung zu färben oder auszublenden, ist ja egal.
Hier mal mein bisheriger Code :
Java:
//Java Extension Packages
import javax.swing.*;
import javax.swing.undo.*;
//Java Core Packages
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
import java.util.Collections;
public class memory extends JFrame {
//Initializing Component
private int click=0;
private JButton a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,h1,h2,i1,i2,j1,j2,k1,k2,l1,l2,m1,m2,n1,n2,o1,o2,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2;
private JPanel panel1;
//setting up GUI
public memory(){
//Title of the Window
super("Fantasy Memory v1.1");
//Size of Window
setSize(1200,500);
//Exit Property of Window
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Constructing JPanel
panel1 = new JPanel();
//Constructing JButton
a1 = new JButton();
a2 = new JButton();
b1 = new JButton();
b2 = new JButton();
c1 = new JButton();
c2 = new JButton();
d1 = new JButton();
d2 = new JButton();
e1 = new JButton();
e2 = new JButton();
f1 = new JButton();
f2 = new JButton();
g1 = new JButton();
g2 = new JButton();
h1 = new JButton();
h2 = new JButton();
i1 = new JButton();
i2 = new JButton();
j1 = new JButton();
j2 = new JButton();
k1 = new JButton();
k2 = new JButton();
l1 = new JButton();
l2 = new JButton();
m1 = new JButton();
m2 = new JButton();
n1 = new JButton();
n2 = new JButton();
o1 = new JButton();
o2 = new JButton();
p1 = new JButton();
p2 = new JButton();
q1 = new JButton();
q2 = new JButton();
r1 = new JButton();
r2 = new JButton();
s1 = new JButton();
s2 = new JButton();
t1 = new JButton();
t2 = new JButton();
//Set the Labels of the JButton in uniform alignment
a1.setHorizontalAlignment(SwingConstants.LEFT);
a2.setHorizontalAlignment(SwingConstants.LEFT);
b1.setHorizontalAlignment(SwingConstants.LEFT);
b2.setHorizontalAlignment(SwingConstants.LEFT);
c1.setHorizontalAlignment(SwingConstants.LEFT);
c2.setHorizontalAlignment(SwingConstants.LEFT);
d1.setHorizontalAlignment(SwingConstants.LEFT);
d2.setHorizontalAlignment(SwingConstants.LEFT);
e1.setHorizontalAlignment(SwingConstants.LEFT);
e2.setHorizontalAlignment(SwingConstants.LEFT);
f1.setHorizontalAlignment(SwingConstants.LEFT);
f2.setHorizontalAlignment(SwingConstants.LEFT);
g1.setHorizontalAlignment(SwingConstants.LEFT);
g2.setHorizontalAlignment(SwingConstants.LEFT);
h1.setHorizontalAlignment(SwingConstants.LEFT);
h2.setHorizontalAlignment(SwingConstants.LEFT);
i1.setHorizontalAlignment(SwingConstants.LEFT);
i2.setHorizontalAlignment(SwingConstants.LEFT);
j1.setHorizontalAlignment(SwingConstants.LEFT);
j2.setHorizontalAlignment(SwingConstants.LEFT);
k1.setHorizontalAlignment(SwingConstants.LEFT);
k2.setHorizontalAlignment(SwingConstants.LEFT);
l1.setHorizontalAlignment(SwingConstants.LEFT);
l2.setHorizontalAlignment(SwingConstants.LEFT);
m1.setHorizontalAlignment(SwingConstants.LEFT);
m2.setHorizontalAlignment(SwingConstants.LEFT);
n1.setHorizontalAlignment(SwingConstants.LEFT);
n2.setHorizontalAlignment(SwingConstants.LEFT);
o1.setHorizontalAlignment(SwingConstants.LEFT);
o2.setHorizontalAlignment(SwingConstants.LEFT);
p1.setHorizontalAlignment(SwingConstants.LEFT);
p2.setHorizontalAlignment(SwingConstants.LEFT);
q1.setHorizontalAlignment(SwingConstants.LEFT);
q2.setHorizontalAlignment(SwingConstants.LEFT);
r1.setHorizontalAlignment(SwingConstants.LEFT);
r2.setHorizontalAlignment(SwingConstants.LEFT);
s1.setHorizontalAlignment(SwingConstants.LEFT);
s2.setHorizontalAlignment(SwingConstants.LEFT);
t1.setHorizontalAlignment(SwingConstants.LEFT);
t2.setHorizontalAlignment(SwingConstants.LEFT);
Container pane = getContentPane();
//Setting the layout for panel
GridLayout grid = new GridLayout(5,8);
//Random
JButton randomZahl[]={a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,h1,h2,i1,i2,j1,j2,k1,k2,l1,l2,m1,m2,n1,n2,o1,o2,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2};
double zahlRem = Math.random();
int zahlRemint = (int) (zahlRem * 10);
//System.out.println(zahlRemint);
Collections.shuffle(Arrays.asList(randomZahl));
//Adding Button to JPanel
panel1.setLayout(grid);
panel1.add(randomZahl[0]);
panel1.add(randomZahl[1]);
panel1.add(randomZahl[2]);
panel1.add(randomZahl[3]);
panel1.add(randomZahl[4]);
panel1.add(randomZahl[5]);
panel1.add(randomZahl[6]);
panel1.add(randomZahl[7]);
panel1.add(randomZahl[8]);
panel1.add(randomZahl[9]);
panel1.add(randomZahl[10]);
panel1.add(randomZahl[11]);
panel1.add(randomZahl[12]);
panel1.add(randomZahl[13]);
panel1.add(randomZahl[14]);
panel1.add(randomZahl[15]);
panel1.add(randomZahl[16]);
panel1.add(randomZahl[17]);
panel1.add(randomZahl[18]);
panel1.add(randomZahl[19]);
panel1.add(randomZahl[20]);
panel1.add(randomZahl[21]);
panel1.add(randomZahl[22]);
panel1.add(randomZahl[23]);
panel1.add(randomZahl[24]);
panel1.add(randomZahl[25]);
panel1.add(randomZahl[26]);
panel1.add(randomZahl[27]);
panel1.add(randomZahl[28]);
panel1.add(randomZahl[29]);
panel1.add(randomZahl[30]);
panel1.add(randomZahl[31]);
panel1.add(randomZahl[32]);
panel1.add(randomZahl[33]);
panel1.add(randomZahl[34]);
panel1.add(randomZahl[35]);
panel1.add(randomZahl[36]);
panel1.add(randomZahl[37]);
panel1.add(randomZahl[38]);
panel1.add(randomZahl[39]);
//Buttons bei Klick mit Text belegen
a1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
a1.setText("Aladin");
a1.revalidate();
click++;
}
}
);
a2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
a2.setText("Aladin");
a2.revalidate();
click++;
}
}
);
b1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
b1.setText("Basilisk");
b1.revalidate();
click++;
}
}
);
b2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
b2.setText("Basilisk");
b2.revalidate();
click++;
}
}
);
c1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
c1.setText("Chimäre");
c1.revalidate();
click++;
}
}
);
c2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
c2.setText("Chimäre");
c2.revalidate();
click++;
}
}
);
d1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
d1.setText("Dwarf");
d1.revalidate();
click++;
}
}
);
d2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
d2.setText("Dwarf");
d2.revalidate();
click++;
}
}
);
e1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
e1.setText("Elf");
e1.revalidate();
click++;
}
}
);
e2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
e2.setText("Elf");
e2.revalidate();
click++;
}
}
);
f1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
f1.setText("Fee");
f1.revalidate();
click++;
}
}
);
f2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
f2.setText("Fee");
f2.revalidate();
click++;
}
}
);
g1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
g1.setText("Gnom");
g1.revalidate();
click++;
}
}
);
g2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
g2.setText("Gnom");
g2.revalidate();
click++;
}
}
);
h1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
h1.setText("Harpyie");
h1.revalidate();
click++;
}
}
);
h2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
h2.setText("Harpyie");
h2.revalidate();
click++;
}
}
);
i1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
i1.setText("Imp");
i1.revalidate();
click++;
}
}
);
i2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
i2.setText("Imp");
i2.revalidate();
click++;
}
}
);
j1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
j1.setText("Java");
j1.revalidate();
click++;
}
}
);
j2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
j2.setText("Java");
j2.revalidate();
click++;
}
}
);
k1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
k1.setText("Kobold");
k1.revalidate();
click++;
}
}
);
k2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
k2.setText("Kobold");
k2.revalidate();
click++;
}
}
);
l1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
l1.setText("Leprechaun");
l1.revalidate();
click++;
}
}
);
l2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
l2.setText("Leprechaun");
l2.revalidate();
click++;
}
}
);
m1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
m1.setText("Medusa");
m1.revalidate();
click++;
}
}
);
m2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
m2.setText("Medusa");
m2.revalidate();
click++;
}
}
);
n1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
n1.setText("Narnia");
n1.revalidate();
click++;
}
}
);
n2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
n2.setText("Narnia");
n2.revalidate();
click++;
}
}
);
o1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
o1.setText("Ork");
o1.revalidate();
click++;
}
}
);
o2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
o2.setText("Ork");
o2.revalidate();
click++;
}
}
);
p1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
p1.setText("Phönix");
p1.revalidate();
click++;
}
}
);
p2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
p2.setText("Phönix");
p2.revalidate();
click++;
}
}
);
q1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
q1.setText("Angel");
q1.revalidate();
click++;
}
}
);
q2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
q2.setText("Angel");
q2.revalidate();
click++;
}
}
);
r1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
r1.setText("Riese");
r1.revalidate();
click++;
}
}
);
r2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
r2.setText("Riese");
r2.revalidate();
click++;
}
}
);
s1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
s1.setText("Sphinx");
s1.revalidate();
click++;
}
}
);
s2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
s2.setText("Sphinx");
s2.revalidate();
click++;
}
}
);
t1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
t1.setText("Triade");
t1.revalidate();
click++;
}
}
);
t2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
t2.setText("Triade");
t2.revalidate();
click++;
}
}
);
System.out.println(click);
//Arrys zum Vergleich anlegen
//JButton[] kacheln1 ={a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1};
pane.add(panel1);
setContentPane(pane);
setVisible(true);
}
public static void main(String[] args){
memory m1 = new memory();
}
}
Man könnte das bestimmt mit hilfe von Arrays usw. einiges kürzen allerdings spielt das für mich momentan noch nicht so die Rolle, erstmal muss es funktionieren .
Wie ihr vielleicht sehen könnt habe ich schon versucht einen click-Zähler zu nutzen, der dann bei click == 2 evtl. einen UndoManager oder sowas ausführt, da habe ich noch keine genauere Idee.
Allerdings verstehe ich nicht wieso ich mit private int click;
Zwar die Klicks in den actionPerformed-Methoden zählen kann, außerhalb mit System.out.println(click); aber keine Rückmeldung bekomme obwohl ich mich doch in der gleichen Klasse befinde?
Und wie könnte ich die aufeinander folgenden 2 Klicks vergleichen ?
Falls es jemandem Hilfe habe ich die .jar angehängt.
Danke euch.
lg Simon
Anhänge
Zuletzt bearbeitet: