Memory Karten nach Paar offen bleiben sonst wieder umdrehen

coci111

Mitglied
Hallöchen zusammen,
ich habe das Spiel programmiert es heißt "Memory" und mein Problem jetzt ist das die Karten nach dem man sie angeklickt haben offen bleiben wenn man ein Paar gefunden hat uns sie sich sonst wieder umdrehen sollen.

Java:
import ch.aplu.jgamegrid.*;
import java.awt.*;
import java.awt.Color;
import ch.aplu.util.*;

public class Memory extends GameGrid implements GGMouseListener
{
   private boolean isReady = true;
   private MemoryCard card1;
   private MemoryCard card2;
   
   
   
   //Konstruktor Memory
   public Memory()
  {
   
   //Spielfeld 4 auf 4 Karten = 16 Karten
  super(4, 4, 115, null, null, false);
  MemoryCard[] cards = new MemoryCard[16];
   
  //Schleife für Spiel karten umdrehen
  for (int i = 0; i < 16; i++)
  {
     if (i < 8)
       cards[i] = new MemoryCard(i);
     else
       cards[i] = new MemoryCard(i-8);
     addActor(cards[i], getRandomEmptyLocation());
     cards[i].show(1);
  }
   
  //Wenn auf Karte geklickt wird dann Karten umdrehen
  addMouseListener(this, GGMouse.lPress);
  doRun();
  show();
   
   
   
  //FEHLER!!!!
  while (true) {
     Monitor.putSleep();
     delay(1000);
     card1.show(1);
     card2.show(1);
     isReady = true;
     setMouseEnabled(true);
     
  }
   
  }

   
//Mischen der Karten
public boolean mouseEvent(GGMouse mouse) {
    Location location = toLocation(mouse.getX(), mouse.getY());
        MemoryCard card = (MemoryCard) getOneActorAt(location);
        if (card.getIdVisible() == 0)
          return true;
         
        card.show(0);
        if (isReady)
        {
          isReady = false;
          card1 = card;
           
        }
        else
        {
          card2 = card;
          if (card1.getId() == card2.getId())
            isReady = true;
          else
          {
            setMouseEnabled(false);
            Monitor.wakeUp();
          }
           
        }
        return true;
}

//Methode für Memory
  public static void main(String[] args)
  {

  new Memory();
  }

 
}
 
Gib der Karte einen Zustand ob sie sichtbar oder versteckt ist. In der Methode MemoryCard#show() kannst du dann entscheiden wie die Karte gezeichnet werden soll.

Zudem können sichtbar Karten nicht mehr angeklickt werden...
 

Zurück
Oben