Ein Grafisches Gitternetz (für Schiffe versenken) darstellen - Wie?

Jack159

Bekanntes Mitglied
Hallo,

Ich würde gern Schiffe versenken mit einer GUI programmieren.
Der Benutzer gibt sein gewünschtes Ziel an (z.b. A5), falls Treffer wird dort eine Trefferanimation (z.b. Häckchen) angezeigt bei A5, falls daneben ein großes X.
Das Problem ist aber, dass ich absolut nicht weiß, wie am besten solch ein Spielrasterfeld erzeuge mit x Spalten und y Reihen. Jedes Feld in dem Raster sollte natürlich inhaltlich (Häckchen oder X) veränderbar sein
Hat da jemand eine Idee?
 
Wo genau weißt du nicht weiter ?
Du zeichnest eben eine Reihe von horizontalen und vertikalen Linien ?
Und wie würde ich dann die einzelnen Felder grafisch verändern?

Wenn der Benutzer z.b. "A5" beschießt, und es ein Fehltreffer war, soll ja ein "X" bei A5 gezeichnet werden.
Wie realisiere ich das?
Dann müsste ich doch von jedem Feld die genauen Pixelkoordinaten abmessen, diese irgendwo Notieren und dann für jedes Feld eine if-Anweisung machen?!

Perfekt wäre es, wenn ich das Array im Programm irgendwie grafisch darstellen kann.
 
1.) Zeichne Linien, die ändern sich ja nie.
2.) Durchlaufe deinen Array in einer Schleife (bzw einer verschachtelten, wenn es ein 2D-Array ist)und zeichne die Einträge.
Das tust du, indem du für jeden Eintrag berechnest (nicht abmessen) wo das X hingehört.
Die Formeln könnten so aussehen:

x -> pixelposition x
xA -> x-Position im Array


x = xA * (breite_gitterlinie + spalten_breite)
y = yA * (breite_gitterlinie + zeilen_höhe)
 
Du benutzt auf deinem jpanel einfach ein gridlayout und fuellst in einer for schleife das panel mit jlabels, du koenntest es auch mit jbuttons fuellen und bei auswahl das clickedicon aendern.

Das waere die sinnvollste loesung denke ich.
 
Fürs Schiffeversenken eindeutig GridLayout mit JButtons.
Alles andere is mumpitz, zumind. bei deinem Wissensstand, den du erst zu haben scheinst.
 
Ah gute Idee mit den Buttons, da kann der Spieler dann direkt auf das gewünschte Ziel klicken und muss es nicht erst immer eintippen 🙂

Danke euch vielmals, mit den Buttons und dem passenden Layout müsste ich es hinkriegen 😉
 

Neue Themen


Zurück
Oben