Hallo,
ich programmiere ein kleines Kartenspiel das in drei Runden abläuft.
Innerhalb der Runde werden immer zwei Karten aufgedeckt, von denen sich der Spieler für eine entscheiden soll. Gegen die muss er kämpfen.
Das passiert solange, bis ein Kartenstapel alle ist, dann beginnt die neue Runde.
Beim Aufdecken der Karten wird ein neuer Frame geöffnet, in dem die Karten angezeigt werden. Dann wird per Button-Klick eine davon ausgewählt. Jetzt habe ich das Problem, dass nach dem Aufdecken der Karten gewartet werden soll, bis ein Button gedrückt wird. Wie kann ich das machen??? Geht das nur über Threads (habe ich bisher noch nie verwendet (Anfänger )) oder gibt es noch eine andere Lösung?
Wenn es nur über Threads geht, wie kann man so einen Wartethread denn möglichst einfach umsetzen? Ich brauche ihn im weiteren Spielverlauf auch noch an anderen Stellen.
Oder wäre es besser, das Spiel gar nicht über Schleifen zu steuern, sondern sich irgendwie direkt von einem Event zum nächsten zu hangeln und zwischendurch immer abfragen, ob der Kartenstapel leer ist?
So sieht die Hauptspiel-Schleife bei mir aus:
Das ist alles noch bissel provisorisch zum Testen. Eigentlich werden dann auf den Buttons Bilder angezeigt.
ich programmiere ein kleines Kartenspiel das in drei Runden abläuft.
Innerhalb der Runde werden immer zwei Karten aufgedeckt, von denen sich der Spieler für eine entscheiden soll. Gegen die muss er kämpfen.
Das passiert solange, bis ein Kartenstapel alle ist, dann beginnt die neue Runde.
Beim Aufdecken der Karten wird ein neuer Frame geöffnet, in dem die Karten angezeigt werden. Dann wird per Button-Klick eine davon ausgewählt. Jetzt habe ich das Problem, dass nach dem Aufdecken der Karten gewartet werden soll, bis ein Button gedrückt wird. Wie kann ich das machen??? Geht das nur über Threads (habe ich bisher noch nie verwendet (Anfänger )) oder gibt es noch eine andere Lösung?
Wenn es nur über Threads geht, wie kann man so einen Wartethread denn möglichst einfach umsetzen? Ich brauche ihn im weiteren Spielverlauf auch noch an anderen Stellen.
Oder wäre es besser, das Spiel gar nicht über Schleifen zu steuern, sondern sich irgendwie direkt von einem Event zum nächsten zu hangeln und zwischendurch immer abfragen, ob der Kartenstapel leer ist?
So sieht die Hauptspiel-Schleife bei mir aus:
Java:
for (int i = 1; i<=3;i++){
runde.setText("Runde: "+i+"/3");
while(gefahrenkartenStapel.size()>0){
JFrame gegnerAuswahl = new JFrame();
JButton karteEins = new JButton();
JButton karteZwei = new JButton();
gegnerAuswahl.setSize(300, 300);
karteEins.setText((gefahrenkartenStap.pop()).toString());
karteZwei.setText((gefahrenkartenStapel.pop()).toString());
gegnerAuswahl.setLayout(new GridLayout(1,2));
gegnerAuswahl.add(karteEins);
gegnerAuswahl.add(karteZwei);
gegnerAuswahl.setVisible(true);
spielFrameAktualisieren();
//TODO Hier wird der Kampf gegen die Karte umgesetzt
}
}
Das ist alles noch bissel provisorisch zum Testen. Eigentlich werden dann auf den Buttons Bilder angezeigt.