kleines Memory Spiel

Yuri-Li

Grünschnabel
Hallo :)
Ich habe momentan ein kleines Problem, mit meinem Memory-Spiel Programm :)

Kurz was zur Ausgangsituation: Dieses Programm entsteht für eine Facharbeit im Fach Informatik mit der Problematik: "Kann man mit BlueJ Java lernen und anwenden?" oder so ähnlich (Es gibt noch keine genaue Problematik, aber ungefähr in diese Richtung wird es gehen)
Warum BlueJ? Einfach weil wir es in der Schule benutzen und mein Lehrer es gerne möchte, dass ich mit diesem Programm arbeite.
Ich habe vorerstmal ein Art Layout erstellt, damit man sich alles besser vorstellen kann (siehe Anhang).
Es gibt ein Hauptfenster/frame mit drei weiteren kleinen Fenster/Frames.
Rechts ist ein Art Menü, Unten kommt später ein Punktezähler hin (zurzeit nur ein Text, damit was zu sehen ist) und die Mitte bzw. Links ist das Spielfeld mit 8 Karten.
Was momentan an Bilder und Umrandungen zu sehen ist, ist eigentlich unwichtig, denn mein Problem liegt woanders, zudem ich jetzt endlich komme ;)

Dieses Layout liegt zurzeit in der Klasse Spiel.
Ich habe zwei Möglichkeiten wie ich den Quelltext in Klasse Spiel getsaltet könnte.
Variante 1:
Ich schreibe ein extrem langen Quelltext, wo dann eine lange Funktion für die Punktberechnung und ein lange Funktion für die Karten sind.
(Darunter gehört u.a., dass umdrehen der Karte, wenn die Karten nicht richtig sind, werden sie wieder neu umgedreht, wenn zwei karten richtig sind, werden sie verblassen und man erhählt ein Punkt usw.)

Variante 2: (zu der ich mehr tendiere, aber irgendwie nicht schaffe umzusetzen)
Sowohl die Karten als auch die Punkte werden eigenständige Klassen in denen ihre Aufgaben/Funktion drinstehen.
So, dass rein theoretisch die Klasse Spiel nur noch sagen muss: "Klasse Karten soll in das JPanel in der Mitte abgelegt werden" und "Klasse Punkte soll in das JPanl unten abgelegt werden"
D.h. ich möchte von der Klasse Spiel auf die Klassen Punkte und Karten zurückgreifen und diese in das Layout mit einbeziehen/implementieren(?).

Ist ungefähr verständlich was ich will?
Ich möchte also nicht, dass die Subklassen(Klasse Punkte, Klasse Karten) auf die Hauptklasse(Klasse Spiel) zurückgreifen. Sonder dass die Hauptklasse auf die Subklasse zurückgreift.
Ich hab schon ein Therad gefunden, was sich mit dem ähnlichen Problem beschäftigt, aber leider wurde ich nicht sonderlich schlau daraus.
(http://www.tutorials.de/forum/java/235324-abstrakte-klassen-gebrauch-von-konstruktor.html - der #5. Post beschreibt das was ich meine :))

Wenn irgendwelche Fragen zu meinem Quelltext sind (die wirklich grausam zu lesen sind XD), kann ich diesen gerne wiedergeben.
Ich bedanke mich schonmal im Vorraus für eure Hilfe und Vorschlägen oder Gegenvorschläge ;)

lg
Yuri

(Ich hoffe mal, dass ich das richtige Unterforum genutzt habe, weil rein theoretisch geht es hier ja um Grundlagen von Java zum Thema Hauptklasse und Subklassen oder so ;))
 

Anhänge

  • layout.JPG
    layout.JPG
    39,5 KB · Aufrufe: 328
Nach dem du keine richtige Frage gestellt hast, und auch nur einen haufen Zeug gepostet hast habe ich deinen Text mal so nen viertel überflogen und dann versucht auch ein Memory zu schreiben. Ist zwar nichts besonderes, aber schaus dir an und lerne eventuell daraus. (Oder gib mir Tipps damit ich lerne, je nach deinen Skill. ^^)
Die Punktezählung habe ich mir mal gespaart.

Und wenn du nicht willst dass sich dein Dozent/lerhrer/Was auch immer umbringt dann gibt den Klassen englische CamelCase-Namen.
 

Anhänge

  • src.zip
    119,9 KB · Aufrufe: 576
Erstmal danke, ich schau es mir gleich an :)

Nunja.. die Frage wäre gewesen: "Wie mach ich das nun?" Das die Hauptklasse auf eine Subklasse zurückgreift.

Ich würde normaler weise auch englische Begriffe nutzen, dass ist mir klar. Aber mein Lehrer bevorzugt Deutsche Wörter, damit die anderen aus meinem Kurs nachvollziehen können, was ich damit mein (obwohl ich eigentlich davon ausgehen kann, dass alle englisch können sollte o_O)

lg
Yuri

Okay... noch eine Sache... wie öffne ich das ganze? Zurzeit besitze ich auf diesem Rechner nur BlueJ für die Facharbeit... und die kann das ganze nicht öffnen.
 
Zuletzt bearbeitet:
okay... an sich ist alles soweit in ordnung, es gibt nur noch eine stell bei der er rummeckert und wo ich nicht weiß warum.

Code:
public class Spiel
{
    private JFrame spielfenster;
    Main oberflaeche;
    Menu menue;
    Highscore highscore;
    Karten karten;
  
    /**
     * Konstruktor für Objekte der Klasse Spiel
     */
    public Spiel()
    {
        spielFensterErzeugen();
    }
     
    /**
     * Fenster des Spieles erzeugen
     */ 
    public void spielFensterErzeugen()
    {
            JFrame spielfenster = new JFrame("Der Spielort");
            spielfenster.setSize(600, 300);
  
          
            //Rechts, Menue
            
            Menu menue = new Menu();
            spielfenster.add(menue);
         
             
             //Mitte, Hauptfeld
             
             karten = new Karten();        
             spielfenster.add(karten);

             
             //Unten, Notiz
             
             Punkte punkte = new Punkte();       
             spielfenster.add(punkte);
             
            spielfenster.pack();
            spielfenster.setVisible(true);
      }
}

So.. und jetzt kommt diese Fehlermeldung beim "Übersetzen"
"cannot find symbol - method add(Menu)"
die fehler meldung kommt auch bei spielfenster.add(karten) und spielfenster.add(punkte).
Hat einer von euch eine Idee wie ich diese Fehlermeldung beheben kann? Hab ich was vergessen oder etwas zu viel aufgeschrieben?

lg
Yuri
 
Hi,
die Methode JFrame.add erwartet eine Komponente(also alles was von java.awt.Component erbt. Die Klasse java.awt.Menu tut das nicht (von was Punkte erbt weiß ich nicht)! Und da ich dir eh abrate, AWT und Swing zu vermischen, hier, wie du ein Swing-Menü erstellen kannst:
Verwende doch einfach javax.swing.JMenuBar (das ist die Menüleiste), setze ein JMenu rein (das ist z.B.: "Datei") und darein dann JMenuItems (z.B.: "Speichern"), alles über die add-Methoden! In den Frame setzt du das ganze dann mit JFrame.setJMenuBar().

Hier ein Code-Beispiel:
http://java.sun.com/j2se/1.5.0/docs/api/

Ciao
DosCoder

PS: In Java kannst du ohne Probleme Umlaute einbauen, also "menü" statt "menue". Kann man doch besser lesen.
 
Zuletzt bearbeitet:
Hallo, kann mir villeicht jemad helfen, ich muss ein Kartenspiel ansehen und wollte mir den Code runterladen um mir mal anzusehen wie der Aussieht. Leider kann ich ihn nicht öffnen. Nicht mit eclipse , nicht mit notepad++ und auch nicht mit UltraEdit.

Es kommt immer : PK  »¶†1G¤Ä¯ ó imgs/0.jpgU–gPÓé‡ÿI( }CS¢ -4EH ]š`ŒR•¦DXT”z ˆÒ{Ò"

weiß einer villeicht Rat?

Danke
 
wow Danke für die schnelle Hilfe. Ich weiß es klingt blöd, aber kannst du mir erklären wie ich es zum laufen bringe?

Ich hab die Dateine aus src->core in eclipse jeweils als classe eingefügt...leider klappt da nix :(
 
Kopiere den ganzen Inhalt des Archives in einen Ordner und benutze Importieren -> Exist Project into Workspace.
 

Neue Beiträge

Zurück