Memory Spiel

bene98

Aktives Mitglied
Hi, Ich würde gerne ein Memory-Spiel machen. Allerdings nicht für mich, sondern für die Kinder meines Bruders.
Ich hab mal die Anlage grob überlegt. Bitte macht Vorschläge zur Verbesserung und Vereinfachung.

Public class Memory extends JFrame implemets ActionListener

Felder:

Image Icons (back und front(ArrayList))

Image Icon erste Karte
Image Icon zweite Karte
Button (ArrayList)
JPanels
JLabel Versuche
JLabel richtige Paare, Anzahl Versuche



Konstruktor public Memory()

JButtons als ArrayList über for -Schleife

ImageIcon auf die Button legen und dem Panel hinzufügen.



Main-Methode { neue Instanz von Memory, Methode imSpiel() aufrufen}



public void imSpiel ()

shuffle (ArrayList)



actionPerformed (ActionEvent e)

über e.getSource wird der gedrückte Button festgestellt.

Bei diesem Button wechselt das ImageIcon von back auf front.

Über getImage() wird die erste Karte zwischengespeichert

Aufruf Methode zweite Karte()



public void zweite Karte( Image Icon erste Karte)

erste Karte sollte umgedreht bleiben.

über e.getSource wird der zweite gedrückte Button festgestellt.

Bei diesem Button wechselt das Image Icon von back auf front.

Bei dem gedrückten Button wird festgestellt, ob das angezeigt Image Icon mit der ersten Karte übereinstimmt.

Über remove() werden die Buttons aus der Button-Array-List entfernt.
 

bene98

Aktives Mitglied
Java:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.io.*;
import java.util.ArrayList;
import java.util.Random;

public class memoryspiel {
    JFrame mframe;
    JPanel mpanel;
    ArrayList<ImageIcon> vorderseite;
    Spieler spieler1= new Spieler("Bene", 0);
    ImageIcon rückseiteIcon;
    ImageIcon vorderseiteIcon2 = new ImageIcon();
    ImageIcon zahlicon;
    ImageIcon vorderseiteIcon;
    JButton mbutton;
    ArrayList<JButton> buttons;
    int counter;
    int zahl;
    int temp2;
    int z;
    int y;
    JButton temp;
    JButton temp3;

    public memoryspiel() throws IOException {
        mframe = new JFrame();
        mframe.setSize(800, 800);
        mpanel = new JPanel();
    

    }

    public void erzeugeBildArray() throws IOException {

        vorderseite = new ArrayList<>();

        BufferedImage vespa = ImageIO.read(new File("C:\\Users\\Benedikt\\eclipse-workspace\\Memory\\vespa.jpg"));
        ImageIcon vespaIcon = new ImageIcon(vespa);
        BufferedImage ape = ImageIO.read(new File("C:\\\\Users\\\\Benedikt\\\\eclipse-workspace\\\\Memory\\ape.jpg"));
        ImageIcon apeIcon = new ImageIcon(ape);
        BufferedImage mini = ImageIO.read(new File("C:\\Users\\Benedikt\\eclipse-workspace\\Memory\\mini.jpg"));
        ImageIcon miniIcon = new ImageIcon(mini);
        BufferedImage porsche911 = ImageIO.read(new File("C:\\Users\\Benedikt\\eclipse-workspace\\Memory\\911.jpg"));
        vorderseiteIcon = new ImageIcon(porsche911);
        BufferedImage typH = ImageIO.read(new File("C:\\Users\\Benedikt\\eclipse-workspace\\Memory\\typH.jpg"));
        ImageIcon typHIcon = new ImageIcon(typH);
        vorderseite.add(vespaIcon);
        vorderseite.add(apeIcon);
        vorderseite.add(miniIcon);

        vorderseite.add(typHIcon);
        vorderseite.add(vespaIcon);
        vorderseite.add(apeIcon);
        vorderseite.add(miniIcon);
    
        vorderseite.add(typHIcon);
        
        
        
        erzeugeButtons();
    }

    public void  Bildlöschen (int z, int y) {
        int q=z;
        int k=y;
    ImageIcon temp= (ImageIcon) ((AbstractButton) buttons.get(q)).getIcon();
    ImageIcon temp2= (ImageIcon) ((AbstractButton) buttons.get(k)).getIcon();
    if (temp==temp2) {((AbstractButton) buttons.get(q)).setIcon(vorderseiteIcon); ((AbstractButton) buttons.get(k)).setIcon(vorderseiteIcon);
    counter=0;
    }
    }
    
    
    
    
    
    
    public void erzeugeButtons() throws IOException {
        buttons = new ArrayList<>();

        BufferedImage rückseite = ImageIO.read(new File("C:\\Users\\Benedikt\\eclipse-workspace\\Memory\\bean.jpg"));
         rückseiteIcon = new ImageIcon(rückseite);

        for (int i = 0; i < vorderseite.size(); i++) {
            mbutton = new JButton();
            mbutton.setIcon(rückseiteIcon);
            mbutton.setActionCommand("1");

            mbutton.addActionListener(new AcListener());
            buttons.add(mbutton);
            mpanel.add(mbutton);
            mframe.add(mpanel);
        }
    
        
        

        mframe.setVisible(true);

    }

    
    
    
    class AcListener implements ActionListener {
    
        
    

        public void actionPerformed(ActionEvent e) {
            temp = (JButton) e.getSource();
            counter ++;
            if (counter <2) {
            
            z = buttons.indexOf(temp);
            System.out.println(z);
            ImageIcon temp2 = vorderseite.get(z);
            temp.setIcon(temp2);}
        if (counter==
                2) {temp3=(JButton) e.getSource();
        y=buttons.indexOf(temp3); ImageIcon temp4=vorderseite.get(y); temp3.setIcon(temp4); Bildlöschen(z,y);}
        
        if (counter>2 && buttons.get(z).getIcon() != buttons.get(y).getIcon()) {
         buttons.get(z).setIcon(rückseiteIcon); buttons.get(y).setIcon(rückseiteIcon); counter=0;  }  }
        
        
        }   
    
        

    

    public static void main(String[] args) throws IOException {
        memoryspiel memoryspiel2 = new memoryspiel();
        memoryspiel2.erzeugeBildArray();
        

    }

}
 

bene98

Aktives Mitglied
Ich habs jetzt angefangen. Meine Frage: Wie kann ich die sache für mehrere Spieler machen?
Eine Klasse "public" Spieler in der ich mehrere Spieler anlege (int punkte, String name) und dann eine Methode "prüfeVersuch" und dann eben ein Verweis aus der action performed Methode spieler1.prüfeVersuch? Wie kann ich dann automatisch wechseln zwischen den spielern? Auch über ne counter variable oder besser über einen Button?
Danke
 

krgewb

Top Contributor
@bene98 Angenommen, ein Spieler dreht zwei Karten um und sie zeigen nicht dasselbe Motiv, dann soll ja nicht sofort der andere Spieler dran sein. Man wüsste ja nicht, welches Motiv die zweite Karte hat. Deshalb habe ich einen Button "wieder verdecken" gemacht. Erst wenn dieser Button angeklickt worden ist, ist der nächste Spieler an der Reihe.

Da ich nur zwei Spieler zulasse, habe ich es ohne ArrayList gemacht.
 

bene98

Aktives Mitglied
Ok das scheint mir sinnvoll. Bis jetzt muss man bei mir ein drittes mal klicken, dann decken sich die Karten wieder zu.

Grundsätzlich wäre das Spiel ohne GUI noch sinnvoller gewesen. Aber jetzt bin ich ja schon weiter und wollte es reinbauen. In alter Handwerkermanier und nach dem Motto "Was nicht passt, wird passend gemacht." Aber ich denk nächstes mal besser dürber nach.
 

mihe7

Top Contributor
Ohne GUI? Das stelle ich mir schwerer vor.
Das ist relativ einfach, weil Du Dich auf den Kern des Spiels konzentrieren kannst, ohne Dich um den ganzen UI-Käse kümmern zu müssen :)

Wie läuft so ein Spiel ab bzw. könnte so ein Spiel ablaufen?

1. Start: alle Karten werden auf dem Tisch verdeckt zufällig verteilt
2. Zug: der Spieler, der an der Reihe ist, deckt nacheinander zwei Karten auf. Bilden diese ein Paar, darf er sie an sich (vom Tisch) nehmen, ansonsten muss er sie wieder umdrehen.
3. Ablauf: die Spieler führen nacheinander einen Zug durch. Die Reihenfolge ist vorab bestimmt. Nach dem letzten Spieler wird wieder beim ersten Spieler begonnen.
4. Ende: das Spiel endet, wenn keine Karten mehr auf dem Tisch liegen
5. Punkte: jeder Spieler erhält für jedes Paar, das er vom Tisch genommen hat, einen Punkt.

So eine Beschreibung mag detailliert erscheinen, tatsächlich taugt das aber nur als Ausgangspunkt für die weitere Analyse. Dabei werden noch einige Detailfragen auftauchen, da vieles als bekannt vorausgesetzt wird oder nur implizit gegeben ist. Zum Beispiel fehlt die Info, dass die Karten auf dem Tisch in Spalten und Zeilen geordnet abgelegt werden, oder dass die Karten nur paarweise verteilt werden können usw.

Wie auch immer: das alles hat nichts mit dem GUI zu tun und wie man sieht, gibt es genug Probleme, die gelöst werden müssen, ohne sich auch noch parallel dazu das UI aufhalsen zu müssen.
 

bene98

Aktives Mitglied
Guten Tag,
1. )Ich brauch also eine run()_methode , die ich mit einer while-Schlife und einem boolean anfangs laufend setze und nicht-laufend, wenn alle Karten weg sind.
2.) Diese Mehtode müsste dann auch das Spielfeld verwalten und graphisch aufbauen, weil das Spielfeld so aktuell gehalten wird.
3.) Ich brauch eine Bildlöschen-Methode, die Elemente aus der Button-Liste entfernen kann.
4.) Ich brauche eine prüfeRateversuch-Methode, die feststellt, ob der Rateversuch erfolgreich war. Dieser Methode müsste der aktuelle Spieler übergeben werden. Sie prüft die Übereinstimmung der Bilder (oder kann man das auch über den getActionComman-Befehl der Buttons machen?)
und gibt die Punkte der Spieler zurück.
5.) Über einen Button kann der Spieler gewechselt werden, wobei ich das bisher nicht kann. Ich dachte man könnte das über eine Setter-Methode machen, aber hierfür bräuchte ich einen Tipp.

Danke für die Hilfe!
 

krgewb

Top Contributor
Wenn ein Spieler einen Punkt hat, werden bei mir die beiden Kärtchen nicht entfernt. Gefundene Pärchen bleiben für immer aufgedeckt liegen.
 

krgewb

Top Contributor
Wenn ein Spieler einen Punkt macht, werden bei mir die beiden Kärtchen nicht entfernt. Gefundene Pärchen bleiben für immer aufgedeckt liegen.
 

temi

Top Contributor
ja, war meine idee wie man die Anregungen umsetzen könnte.

Da hast du aber @mihe7 s Anregung
ohne Dich um den ganzen UI-Käse kümmern zu müssen
irgendwie falsch verstanden.

Überlege dir doch erst mal, welche Klassen für das Spiel in welcher Weise miteinander agieren müssen.

Solche Sachen wie diese:
graphisch aufbauen
Bildlöschen-Methode
getActionComman-Befehl
kommen da noch gar nicht vor.


Konzentriere dich zunächst nur auf die Spiellogik. Die UI verwendet dann später diese Spiellogik und sollte separat von dieser implementiert werden.
 

bene98

Aktives Mitglied
ok, das hab ich dann wohl noch nicht so gut trennen können. Ist aus meiner Sicht bei dem Spiel mit Bildern aber auch etwas schwieriger als ohne Bilder.
 

bene98

Aktives Mitglied
Hallo, Ich habe versucht, mich auf die Spiellogik zu konzentrieren. wenige Elemente der GUI sind zwar enthalten, aber fast nur dann, wenn sie für die Spiellogik wichtig sind.

Klasse Memoryspiel:

Felder:

int richtigeAntwort;

ArrayList <ImageIcons> bilderliste

ArrayList <JButton> buttons;

Image Icon grünerHaken;

Image Icon Rückseite;



Konstruktor Memoryspiel:

Teile der Gui werden erzeugt(JFrame).

Methoden:

erzeugeBilderliste () – Image Icons werden der bilderliste hinzugefügt.

erzeugeButtons () – Buttons werden erzeugt in die Liste buttons eingefügt und auf JFrame gesetzt.

spieleSpiel () – while (bilderliste.size !=0) { aktuellerSpieler.gibAntwort}

public void prüfeAntwort (antwort1+antwort)

Wenn antwort 1 =Antwort a wird der Index des Bildes als int richtige Antwort festgehalten.

aktuellerSpieler.punktePaare wird erhöht. Methode Bildlöschen wird aufgerufen mit dem int richtige Antwort als Parameter.

Wenn antwort1 != antwort2 wird die Rückseite erneut gesetzt.

bildLöschen (int richtigeAntwort)

Das Bild mit dem Index wird aus der Bilderliste gelöscht. Der Button erhält ein Bild mit einem grünen Haken.



Main-Methode / Erzeugen einer neuen Instanz des Spiels -





Klasse Spieler:

String name;

int antwort1, antwort2

int counter;

spieler1=new Spieler (“ “; 0)

spieler2=new Spieler (““,0)

Spieler aktuellerSpieler= new Spieler();

JButton spielerwechseln;

Konstruktor Spieler (String name, int punktePaare)


Methoden

gibAntwort () – dies könnte auch die action performed _Methoder der Buttons sein.

wenn der Button Spieler wechseln gedrückt wird, wird jeweils der Index der beiden umgedrehten Karten festgehalten. Die Methode prüfeAntwort aus der Klasse memorySpiel wird aufgerufen mit den Parametern antwort 1+antwort2.

wechseleSpieler(aktueller Spieler)

wenn der aktuelle Spieler spieler1 ist, soll Spieler 2 gesetzt werden und andersherum.
 
Zuletzt bearbeitet:

bene98

Aktives Mitglied
Meine Scheiwrigkeiten beziehen sich auf 3Punkte:
1. Ist es wichtig eine 3.Klasse zu machen, die die Bilder verwaltet? Welche Vorteile hätte dies?
2. Ich habe noch nicht ganz verstanden, was man genau z.B: von der Klasse Spieler in der Klasse MemorySpieler abrufen kann und wie.
Ich kann auf die Methoden zurückgreifen über die Instanzen z.B. aktuellerSpieler.gibAntwort(); Wie komme ich an die Felder? Müssen die Felder erst static sein? Oder macht es genau aus diesem Grund Sinn eine Testklasse mit der main-Methode zu haben, damit ich diese Umwandlung nicht machen muss.
3. Ich bin mir nicht sicher, ob man das mit dem aktuellen Spieler =spieler1 machen kann oder ob das vom Ziel wegführt.
Danke
 
Zuletzt bearbeitet:

mihe7

Top Contributor
1. Ist es wichtig eine 3.Klasse zu machen, die die Bilder verwaltet? Welche Vorteile hätte dies?
Du brauchst erstmal keine Bilder.

2. Ich habe noch nicht ganz verstanden, was man genau z.B: von der Klasse Spieler in der Klasse MemorySpieler abrufen kann und wie.
Was brauchst Du von der Logik her denn vom Spieler?

Mal ein grobes, unvollständiges Gerüst:
Java:
public class Spiel {
    private int aktuellerSpieler;
    private List<Spieler> spieler;
    private Karten karten;

    public Spiel(List<Spieler> spieler, Karten karten) {
        this.spieler = spieler;
        this.karten = karten;
        aktuellerSpieler = 0;
    }

    public Spieler gibAktuellenSpieler() {
        return spieler.get(aktuellerSpieler);
    }

    public void aufdecken(int karte) { 
        // Teil der Logik
    }

    private void naechsterSpieler() {
        aktuellerSpieler = (aktuellerSpieler + 1) % spieler.size();       
    }

    private void erhoehePunkte() {
        gibAktuellenSpieler().ehoehePunkte();
    }

    // usw.
}

Das Spiel kennt die Regeln, es ist dafür zuständig, diese durchzusetzen.

Klasse Karten könnte dabei z. B. so aussehen:
Java:
import java.util.Random;

public final class Karten {
    private static final int KEINE = -1;
    private final int[] werte;
    private final Random rand;

    public Karten(int paare) {
        werte = new int[2*paare];
        rand = new Random();
        zuruecksetzen();
    }

    public void zuruecksetzen() {
        for (int i = 0; i < werte.length; i++) {
            werte[i] = i/2;
        }
    }

    public void mischen() {
        for (int i = 0; i < werte.length; i++) {
            int ix = i + rand.nextInt(werte.length - i);
            int tmp = werte[i];
            werte[i] = werte[ix];
            werte[ix] = tmp;
        }
    }

    public void entferne(int ix) {
        if (gib(ix) != KEINE) {
            werte[ix] = KEINE;
        }
    }

    public int anzahl() {
        return werte.length;
    }

    public int gib(int ix) {
        return (ix < 0 || ix >= werte.length) ? KEINE : werte[ix];
    }

    public boolean istPaar(int ix1, int ix2) {
        return gib(ix1) == gib(ix2) && gib(ix1) != KEINE;
    }
}
 

bene98

Aktives Mitglied
ich hab es in dem konkreten Fall verstanden, dass man die Spieler in einer ArrayList speichern kann und in der Klasse memoryspiel nutzen.
Vielleicht muss man das auch nur ein paar mal üben, aber im Grunde bleibt meine Frage, wie ich aus einer Klasse auf welche methoden und Felder einer anderen Klasse zurückgreifen kann. Immer nur über Objekte der anderen Klasse? Oder gibt es eine andere Möglichkeit?
 

krgewb

Top Contributor
Das ist relativ einfach, weil Du Dich auf den Kern des Spiels konzentrieren kannst, ohne Dich um den ganzen UI-Käse kümmern zu müssen :)
...
Wie auch immer: das alles hat nichts mit dem GUI zu tun und wie man sieht, gibt es genug Probleme, die gelöst werden müssen, ohne sich auch noch parallel dazu das UI aufhalsen zu müssen.
Und wie soll er das Programm darauf testen, ob alles richtig funktioniert?
 
K

kneitzel

Gast
Und wie soll er das Programm darauf testen, ob alles richtig funktioniert?
Dazu dienen Unit Tests. Und wenn man sich damit noch nicht beschäftigen möchte, dann schreibt man das alles in einer main.

Also in der main Methode werden dann einfach andere Methoden aufgerufen, die irgendwelche Spiel Objekte erstellen um darauf dann die Aktionen von eben diesen zu testen.
So hat man dann im nu einige Funktionen, die alle Tests machen. In der main Methode hat man dann die Aufrufe der Tests, die man gerade testen möchte.

Das sind dann die Unit Tests für Dumme. Und wenn man dann endlich den Schritt gehen will, und Unit Tests haben will, dann schiebt man diese Testmethoden in eigene Test Klassen, setzt paar Asserts und Annotations und ist dann fertig :)

Das ist halt ein Schritt, den man gehen muss, wenn man erste Applikationen schreiben will. Das ist zumindest meine Überzeugung.
 

mihe7

Top Contributor
Vielleicht muss man das auch nur ein paar mal üben, aber im Grunde bleibt meine Frage, wie ich aus einer Klasse auf welche methoden und Felder einer anderen Klasse zurückgreifen kann. Immer nur über Objekte der anderen Klasse?
Ja, selbstverständlich. Objektorientierung zeichnet sich dadurch aus, dass Objekte zusammenarbeiten, um ein Problem zu lösen.
 

mihe7

Top Contributor
Und wie soll er das Programm darauf testen, ob alles richtig funktioniert?
Die Antwort von @JustNobody würde ich gerne ergänzen. Der Unterschied ist, dass durch die Trennung von Logik und UI das Testen einfach wird. Hast Du die Logik im UI, muss das UI getestet werden. Das ist sowohl manuell als auch automatisiert mit erheblichem Aufwand verbunden. Hast Du die Logik dagegen separat, kannst Du recht einfach einen "Client" schreiben, der den Spaß automatisiert testet.

Aus dem Grund ist z. B. rand eine Instanzvariable: über einen weiteren Konstruktor, der zum Testen verwendet wird (oder auch eine entsprechende Methode), wird der Zufallsgenerator mit einem festen Wert initialisiert, so dass der "Zufall" keiner mehr ist. Die Testbarkeit ist mit ein Grund, warum die Klasse Spiel die Karten nicht selbst erstellt, sondern die Abhängigkeiten injiziert werden (Dependency Injection).
 

bene98

Aktives Mitglied
Ich verstehe, dass man Sachen erstmal für die Konsole entwickeln soll und dann schaut, ob da was sinnvolles ausgegeben wird, bevor mal nen tolle graphische Umgebung baut. Dass ich das Weitere nicht so ganz vestehe, hat wohl damit zu tun, dass ich mich noch keine Minute mit JUnit auseinandergesetz habe. Aber kann ja noch kommen
 
K

kneitzel

Gast
Das ist teilweise gar nicht so komplex. Man darf sich da nicht von dicken Büchern oder so abschrecken lassen. Am Anfang geht es ja erst darum, dass man einen ersten Einstieg findet. Man muss da nicht nach TDD entwickeln und so.

Und mit einer vernünftigen IDE wird viel Arbeit auch direkt von der IDE abgenommen.
 

mihe7

Top Contributor
Ich verstehe, dass man Sachen erstmal für die Konsole entwickeln soll und dann schaut, ob da was sinnvolles ausgegeben wird, bevor mal nen tolle graphische Umgebung baut. Dass ich das Weitere nicht so ganz vestehe, hat wohl damit zu tun, dass ich mich noch keine Minute mit JUnit auseinandergesetz habe. Aber kann ja noch kommen
Die Empfehlung mit der Konsole hat "lediglich" den Hintergrund, das Trennen von Zuständigkeiten zu vereinfachen. Wenn Du heute ein Memory mit Swing baust und bekommst morgen die Aufgabe, auf JavaFX oder Android umzustellen, dann musst Du - entsprechende Trennung vorausgesetzt - nur noch die Oberfläche ändern. Hast Du die Logik dagegen in das UI eingebaut, darfst Du die kompletten Anwendung neu schreiben.

Das UI ist also Client der Logik und nachdem es der Logik egal ist, wer Client ist, kannst Du natürlich beliebige Clients dranhängen - und damit auch einen Client, der nichts anderes tut, als die Logik zu testen.

Tests sind sehr einfach. JUnit ist einfach ein Framework, das das Schreiben und die Ausführung von Tests vereinfacht. Es geht aber auch ohne. Wichtig ist, keine Methoden sondern Funktionalitäten zu testen.

Mal ein einfaches Beispiel für Karten. Wir testen mal, ob die Klasse die richtige Anzahl an Karten zur Verfügung stellt:

Java:
public class KartenTest {
    public static void main(String[] args) {

        // wenn wir Karten mit 10 Paaren erzeugen
        // dann muss es 20 Karten geben
        Karten k = new Karten(10);
        int anzahl = k.anzahl();
        if (anzahl != 20) {
           System.err.printf("20 Karten erwartet, tatsächlich waren es %d\n", anzahl);
        }

    }
}
Da wir das gleiche mit unterschiedlichen Zahlen testen müssen, empfiehlt es sich, den Spaß in eine Methode auszugliedern:
Java:
public class KartenTest {
    static void testeAnzahlAnKarten(int paare, int erwarteteAnzahl) {
        Karten k = new Karten(paare);
        int tatsaechlicheAnzahl = k.anzahl();
        if (tatsaechlicheAnzahl != erwarteteAnzahl) {
            System.err.printf("testeAnzahlAnKarten: %d Karten erwartet, tatsächlich waren es %d\n", 
                    erwarteteAnzahl, tatsaechlicheAnzahl);
        }
    }

    public static void main(String[] args) {
        testeAnzahlAnKarten(10, 20);
        testeAnzahlAnKarten(15, 30);
    }
}

Wenn man im "Testmodus" ist, ändert sich das Denken fast automatisch. Zum Beispiel beginnt man zu überlegen, was passieren soll, wenn versucht wird, Karten mit 0 oder gar -5 Paaren zu erzeugen? Sagen wir mal, dass in diesen Fällen einfach 0 Karten erzeugt werden.

Java:
    public static void main(String[] args) {
        testeAnzahlAnKarten(10, 20);
        testeAnzahlAnKarten(15, 30);
        testeAnzahlAnKarten(0, 0);
        testeAnzahlAnKarten(-5, 0);
    }

Wenn Du das ausführst, bekommst Du eine Exception, d. h. die Klasse Karten arbeitet nicht so, wie der Test es erwartet.

Andere Tests wäre z. B. dass unmittelbar nach der Erzeugung jede Karte doppelt vorhanden sein muss, dass das Abrufen einer nicht vorhandenen Karte KEINE liefern muss, dass nach dem Entfernen die Karte tatsächlich nicht mehr vorhanden ist usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
Olis Erste Schritte Simples Memory Spiel möglich? Java Basics - Anfänger-Themen 1
pinar memory spiel Java Basics - Anfänger-Themen 10
P NullPointerException in Memory-Spiel Java Basics - Anfänger-Themen 5
I Memory-Spiel Feld nur einmal mischen Java Basics - Anfänger-Themen 2
K Memory-Spiel stecke Fest Java Basics - Anfänger-Themen 2
K Ein Memory Spiel ! Java Basics - Anfänger-Themen 6
K Memory-Spiel alle verdeckte karten aufdecken. Java Basics - Anfänger-Themen 26
I Memory-Spiel Java Basics - Anfänger-Themen 2
G Memory-Spiel Java Basics - Anfänger-Themen 8
B Image Matching in Memory Minigame Java Basics - Anfänger-Themen 7
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
P Layout Manager - Welches Layout für Memory? Java Basics - Anfänger-Themen 7
A Java memory leakage Java Basics - Anfänger-Themen 9
T Out of Memory (Java Heap Space) Java Basics - Anfänger-Themen 9
S Datentypen Memory Problem Java Basics - Anfänger-Themen 12
O Memory Thread.sleep() Java Basics - Anfänger-Themen 5
T Memory Leak und der Garbage Collector Java Basics - Anfänger-Themen 21
A Memory Probleme beim Laden von thumbnails Java Basics - Anfänger-Themen 3
S memory heap problem Java Basics - Anfänger-Themen 9
J Memory Footprint von Objekten Java Basics - Anfänger-Themen 2
W Servlet - out of memory Java Basics - Anfänger-Themen 7
B Memory - Zufällige Anordnung von Buchstabenpaaren Java Basics - Anfänger-Themen 8
J Memory Java Basics - Anfänger-Themen 2
G Memory Projekt, Fragen über Fragen Java Basics - Anfänger-Themen 6
B Memory in Java Java Basics - Anfänger-Themen 16
T Out of Memory Error Java Basics - Anfänger-Themen 7
E Heapspace out of Memory Java Basics - Anfänger-Themen 8
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
I Threads Spiel gol Java Basics - Anfänger-Themen 6
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
enesss tictactoe spiel Java Basics - Anfänger-Themen 5
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
Kennewick Basketball Spiel Ergebnisse Java Basics - Anfänger-Themen 11
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
I Simples Risiko-Spiel Java Basics - Anfänger-Themen 5
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
C Java Spiel Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
Kamy Ein einfaches "Vier Gewinnt" Spiel für Anfängerin Java Basics - Anfänger-Themen 51
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
M Spiel programmieren Java Basics - Anfänger-Themen 16
Spencer Reid Feedback zu kleinem Spiel Java Basics - Anfänger-Themen 4
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
I Spiel Java Basics - Anfänger-Themen 34
H ein einfaches Tic Tac Toe Spiel Java Basics - Anfänger-Themen 1
I Spiel programmieren. Java Basics - Anfänger-Themen 16
B Hilfe bei Escape - Spiel Java Basics - Anfänger-Themen 6
S Java-Spiel Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
K Klassen Registrierungsseite für ein Spiel Java Basics - Anfänger-Themen 6
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
M Brauche Tipps für ein Spiel Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
Mxxxt Mosaik Spiel - Steuerpanel wird nicht angezeigt Java Basics - Anfänger-Themen 5
M Erste Schritte Zufallszahl Spiel Problem Java Basics - Anfänger-Themen 7
Z Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht Java Basics - Anfänger-Themen 2
H Spiel Kniffel: Gesamtes Array untersuchen. Java Basics - Anfänger-Themen 15
Tacofan Hangman als fertiges Spiel Java Basics - Anfänger-Themen 7
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
K Kleines Spiel auf Java programmieren Java Basics - Anfänger-Themen 2
W Tic Tac Toe Spiel ohne Arrays Java Basics - Anfänger-Themen 7
S Im objektorientiertem "Spiel" kämpfen Java Basics - Anfänger-Themen 3
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
F Mastermind Spiel Java Basics - Anfänger-Themen 9
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
F Game-Engine für textbasierendes Spiel: Architektur? Java Basics - Anfänger-Themen 9
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
J Java Spiel Zufallsauswahl für Zugbeginn Java Basics - Anfänger-Themen 3
J Frage Antwort Spiel - Wie Zeitcountdown realisieren? Java Basics - Anfänger-Themen 2
L Erste Schritte Spiel: Glückliches Sieben Java Basics - Anfänger-Themen 3
T Hangman spiel Java Basics - Anfänger-Themen 5
J 2 Pc's - Spiel gegeneinander ?! Java Basics - Anfänger-Themen 3
V Spiel Programmieren Java Basics - Anfänger-Themen 9
P 2D-Spiel und Bildschirmgröße Java Basics - Anfänger-Themen 2
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben