Wir bauen ein Memory-Spiel in der Schule . Bis jetzt hat alles super funktionert nur ich denke jetzt habe ich einen kleinen Problem. Ich habe ins Spiel einen Schummel-Button eingebaut. Wenn ich es drücke drehen sich alle Karten um das ist ok . Nur ich möchte so eine funktion haben das sich die Karten wieder Automatisch nach einer Zeit umdrehen . Das muß ich mit einem Timer machen . Kann mir einer einen Weg beschreiben ? Diesen Timer muß ich glaube ich auch in dem Schummel-Button einbauen damit es beim drücken des Buttons Aktiviert wird und die nach einer bestimmten Zeit wieder umdreht.
mfg
kaper28
Code:
public void kartenAufdecken(){
int i =0;
for(i=0; i+1 <=42;++i )
karten[i].vorderseiteZeigen();
}
ich habe selbst ein Memory-Programm geschrieben.
Dieses deckt automatisch nach dem Aufdecken
der zweiten Memory-Karte die erste und zweite Karte
wieder zu, wenn beide nicht übereinstimmen.
Also im Prinzip so etwas was du suchst, nur etwas anders.
Wenn beide Karten unterschiedlich sind, wird ein Thread gestartet:
Code:
...
else if (karten_aufgedeckt==1)
{
source.setText(""+z);
//Zurücksetzen:
karten_aufgedeckt=0;
//Wenn Werte 1. und 2. Karte nicht gleich sind
if (z != z_merken)
{
KarteKurzAufdecken k = new KarteKurzAufdecken(source,source_alt);
k.start();
}
}
Im Thread wird eine Sekunde gewartet und dann beide Karten
wieder zugedeckt:
Code:
public class KarteKurzAufdecken extends Thread
{
JButton jb,jb2;
KarteKurzAufdecken() {}
KarteKurzAufdecken(JButton jb,JButton jb2) {this.jb = jb;this.jb2 = jb2;}
public void run()
{
//System.out.print("Thread KarteKurzAufdecken\n");
try
{
//verhindern, dass Thread doppelt startet,damit nicht mehr als zwei
//Karten gleichzeitig aufgedeckt werden:
karten_aufdecken_blockieren = true;
Thread.sleep(1000);
//Karten wieder zudecken:
jb.setText("x");
jb2.setText("x");
karten_aufdecken_blockieren = false;
}
catch(InterruptedException ie)
{
interrupt();
}
}
}
Das Warten habe ich in den Thread gelegt, damit der Rest des Programmes
durch das Warten nicht blockiert wird.
In general, we recommend using Swing timers rather than general-purpose timers for GUI-related tasks because Swing timers all share the same, pre-existing timer thread and the GUI-related task automatically executes on the event-dispatch thread.
In general, we recommend using Swing timers rather than general-purpose timers for GUI-related tasks because Swing timers all share the same, pre-existing timer thread and the GUI-related task automatically executes on the event-dispatch thread.
Ich habe es geschafft alle gedecken Karten aufzudecken. Nur jetzt kriege ich nicht hin alle gedecken Karten wieder umzudrehen ( also wieder gedeckt zu machen ). ???:L :bahnhof: