kleine Fragen eines Anfängers

O

Ozy

Gast
Hallo Gemeinde,
nachdem wir jetzt in diesem Semester eine Java-Vorlesung hatten und mir Java doch mehr gefallen hat als C (zumindest im Bereich der Desktopprorammierung) hab ich mich daheim jetzt bisl hingehockt und rumgespielt.

Ich versuche mich gerade an der Implementierung des "Game of Life" noch Conway.
Der Algorithmus läuft soweit, auf einem kleinen Versuchsfeld (nur 4*4 bis jetzt) klappen die ersten Tests, das Spielfeld ist soar schon Torrusförmig :)

Später soll noch eine Möglichkeit kommen, "Universen" aus Textdateien zu laden, aber momentan geschieht das Setzen der Startformation komfortabel in einem GUI, wobei jede Zelle des Spielfelds durch eine Klasse "Zelle" repräsentiert wird, die von JButton erbt. Und zwar deswegen, weil ich per Aktionevent (klick auf den Button) sehr leicht eine Startformation zusammenklicken kann.

Zusätzlich hat jede Zelle noch Attribute, zB ihre Koordinaten, ihren Zustand etc. Ausserdem haben alle Zellen einige static-Attribute gemeinsam, die Hauptsächlich ihr Design betreffen, zB Farben, Größe etc. Ausserdem exisitieren Methoden um Zellen zu töten, wiederzubeleben, und sogar eine zufällige Verteilung mit einer gewissen Population (in %) zu ermöglichen. Aber das ist nebensächlich :)

Da mein Algorithmus funktioniert arbeite ich an einer komfortablen GUI.
Danach soll es möglich sein,das Spielfeld beliebig groß zu machen, und auch per Regler die Wachstumsgeschwindigkeit zu ändern.

Wie gesagt, in Java bin ich noch nicht so lange dabei. Deshalb meine Frage:
Ist mein Lösungsansatz, jede Zelle als JButton zu realisieren, überhaupt sinnvoll?
Ich meine, wenn ich mal ein 100*100 Spielfeld anlege, das gibt 10k Buttons.
Das ist doch bestimmt recht Speicherintensiv. Ich weis ja nicht was 10k Buttons (die alle noch ca. 10 Attribute haben) an Speicher verschlingen.
Und rechenintensiv doch bestimmt auch? Der Algorithmus greift zwar auf ein Array aus enum-Werten zurück, aber nach dem berechnen müssen trotzdem alle Zellen (respektive Buttons) die sich ändern getötet oder gerezzt werden.

Wie würdet ihr das machen? Oder denkt ihr ich kann meinen Ansatz weiterverfolgen?

Bin über Hilfedankbar,
MfG Ozy
 
G

Gast2

Gast
Ich hab das ganze auch mal programmiert und ich denke mit dem Ansatz für jede Zelle einen JButton zu verwenden wirst du nicht sehr weit kommen.
Bei nem größeren Feld wird dir da wohl die performance flöten gehen :)

Ich habe damals intern ein boolean[][]-array verwendet und als Darstellung auf der Gui ein BufferedImage verwendet (schwarz/weiße Pixel).
Auf diesem Image kannst du dann einen MouseListener registrieren und die Mausklicks an dein Model weitergeben, das funktionierte eigentlich recht gut.
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Ist mein Lösungsansatz, jede Zelle als JButton zu realisieren, überhaupt sinnvoll?
Ich meine, wenn ich mal ein 100*100 Spielfeld anlege, das gibt 10k Buttons.
Das ist doch bestimmt recht Speicherintensiv. Ich weis ja nicht was 10k Buttons (die alle noch ca. 10 Attribute haben) an Speicher verschlingen.

Viel. ZU viel. Ich hatte schon mehrfach hierauf verlinkt: was in einer JComponent so alles drin steckt... Abgesehen davon: Setzt du die Farben jetzt mit setBackground oder so? Das dürfte dann insgesamt ziemlich langsam werden...

Man könnte, wie EikeB beschrieben hat, einen boolean[] oder boolean[][] array verwenden, vielleicht auch irgendeinen anderen Typ. (Man könnte (!) auch in Erwägung ziehen, das Spielfeld direkt ein BufferedImage sein zu lassen, aber da sollte man genau überlegen und muss aufpassen, dass Modell und Visualisierung noch semantisch getrennt sind (man also erstmal nicht überall weiß, dass das Spielfeld ein BufferedImage ist)).

Am einfachsten wäre eigentlich ein 2D-Array, aber etwas flexibler und ggf. einfacher zu verwenden wäre ein interface, das im wesentlichen die Funktion eines 2D-Arrays hat, bei dem Implementierungen dann aber z.B. das Torusverhalten oder irgendein anderes Verhalten schön gekapselt zusammenfassen und anbieten kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N kleine Kommazahlen erscheinen plötzlich Allgemeine Java-Themen 19
T Kniffel: kleine Straße Allgemeine Java-Themen 6
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
Soloeco Kleine Optimierungsfrage Allgemeine Java-Themen 6
RalleYTN Classpath Nur ne kleine Frage zur MANIFEST.MF Allgemeine Java-Themen 4
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
Y Kleine Frage zu String.split Allgemeine Java-Themen 3
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
D Kleine Frage zum öffnen eines Fensters Allgemeine Java-Themen 10
A Drucken auf kleine Formate Allgemeine Java-Themen 2
musiKk Best Practice für kleine Variationen in gegebenen Modellklassen Allgemeine Java-Themen 11
nrg Kleine Hilfe mit RegEx Allgemeine Java-Themen 2
L Kleine Rekursion Allgemeine Java-Themen 12
B Kleine Frage zu Modellierung (Videothek) Allgemeine Java-Themen 2
J Eine kleine Aufnahme mit Java Allgemeine Java-Themen 3
J Kleine Hilfe zum Framework Click Allgemeine Java-Themen 2
Lulumann6 kleine frage zu KeyEvents Allgemeine Java-Themen 10
G Kleine Frage zu Vectoren Allgemeine Java-Themen 2
D kleine SQL-Hilfe benötigt: not a single-group group function Allgemeine Java-Themen 4
T Designfrage: Viele, kleine Objekte Allgemeine Java-Themen 13
M Schnell kleine Hilfe gesucht! Allgemeine Java-Themen 3
T kleine mp3 Lib Allgemeine Java-Themen 17
K Mit Java kleine Freeware Programme erstellen. Geht das? Allgemeine Java-Themen 16
L kleine frage zum rechner Allgemeine Java-Themen 7
V kleine Threadfrage Allgemeine Java-Themen 10
T Kleine Verständnisfrage zu Stringbuffer Allgemeine Java-Themen 2
K Kleine Exception Frage ! Allgemeine Java-Themen 3
B Wie heißt dieser kleine Typ links oben? Also dieses JavaVieh Allgemeine Java-Themen 5
Zrebna Fragen zu Testabdeckungs-Metriken Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
K BlueJ - Fragen zu dem Spiel Pacman (Nachprogrammieren) Allgemeine Java-Themen 141
V Ich hätte 2 Fragen Allgemeine Java-Themen 5
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
H Fragen zur Kraken Api Allgemeine Java-Themen 1
nonickatall Klassen Grundsätzliche Fragen zu geplanter Programmstruktur Allgemeine Java-Themen 5
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
T Fragen bezgl. Lambdas Allgemeine Java-Themen 20
X Collections Fragen zu gleichen Elementen in TreeSet Allgemeine Java-Themen 35
A Neuerungen in Java 8 StreamAPI- Paar fragen Allgemeine Java-Themen 4
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
M Diverse Design-Fragen Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
D Grundsätzliche Fragen zum Heap Space Allgemeine Java-Themen 12
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
M Allgemeine Fragen meinerseits Allgemeine Java-Themen 4
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
R Es gibt keine dummen Fragen (hab ich mal gehört) Allgemeine Java-Themen 11
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
2 2 Klein Fragen Allgemeine Java-Themen 7
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
A Java Theorie-Fragen Allgemeine Java-Themen 7
K Java QUIZ-Spiel Fragen und Antworten generieren?! Allgemeine Java-Themen 5
R Socket Fragen zu UDP Allgemeine Java-Themen 1
B Noob-Fragen zu Tablets und PC kompatiblität... Allgemeine Java-Themen 6
D Ein paar allgemeine Fragen zu Java Allgemeine Java-Themen 19
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
R Fragen zu Server + UI Allgemeine Java-Themen 2
U Vier Fragen zu Java Allgemeine Java-Themen 2
H MediaManager Fragen/Probleme Allgemeine Java-Themen 6
D Fragen zum erstellen einer ausführbaren Jar Datei Allgemeine Java-Themen 3
C Polymorphie Fragen zur Annotations von Persistenz Allgemeine Java-Themen 2
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
StrikeTom Java Performance Fragen Allgemeine Java-Themen 5
Luk10 Fragen zum ByteBuffer (lwjgl - icons) Allgemeine Java-Themen 2
F Akkumulator Hough-Transformation offene Fragen Allgemeine Java-Themen 4
Luk10 Fragen zu Naming-Conventions Allgemeine Java-Themen 5
Z Einige Fragen Allgemeine Java-Themen 10
T OOP Einige Fragen zu UML-Klassendiagrammen Allgemeine Java-Themen 6
G Einige Fragen zu ResourceBundles Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
DStrohma Grundsätzliche Fragen zum Aufbau eines komplexeren Programmes Allgemeine Java-Themen 8
Semox Grapheneditor - Allgemeine Fragen zum Logikdesign Allgemeine Java-Themen 3
X Executor fragen ob fertig Allgemeine Java-Themen 13
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
K Reflections Fragen Allgemeine Java-Themen 7
S Fragen zum SCJD-Zertifikat Allgemeine Java-Themen 2
M Backend Entwicklung - Konzept fragen Allgemeine Java-Themen 3
E Fragen zu Scala Allgemeine Java-Themen 11
Daniel_L Fragen zu RegEx und URL umwandeln Allgemeine Java-Themen 4
J Diverse Fragen bezüglich Jasper Allgemeine Java-Themen 3
S Fragen zum ShutdownHook Allgemeine Java-Themen 7
V Fragen zu einem Java Browser Allgemeine Java-Themen 7
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
L Einige Fragen zu Java Allgemeine Java-Themen 9
F Linguistische Fragen zu Javadoc bzw. Englisch Allgemeine Java-Themen 4
E Einfache Fragen zu Dateien Allgemeine Java-Themen 7
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
H Java Multiplicoice Test (10 Fragen) Allgemeine Java-Themen 11
J Viele Fragen. =) Hoffentlich könnt ihr helfen Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben