Grundgedanken zu einer Scoring App

Cash

Neues Mitglied
Hallo zusammen,

ich bin Java/Programmiereinsteiger und möchte eine Dart Scoring App programmieren. Ich möchte hier keine Quellcodes, sondern nur Tipps für die Umsetzung( Methoden, Klassen etc). :)

Die app soll so aufgebaut sein:
Appstart -> Hauptmenü
Hier hat man die Button "Spiel", "Playermanagement" und "Optionen".
Wichtig : Im Fenster Playermanagement soll man Spieler hinzufügen und löschen können. Die hinzugefügten Spieler werden mit Namen direkt im Fenster angezeigt. Wenn man ein Spielerprofil anwählt bekommt man Statistiken zum Average, Doppelquote,Matchhistory etc.
Frage : Hat das was schon mit Datenbanken zu tun? benutze ich für die Spieler Klassen oder arraylist Methoden?

Im "Spiel"Fenster heißt es 1 gegen 1.
Hier soll es für jeden Spieler einen Button o.ä. geben. Wenn man darauf drückt erscheint eine Liste, aus der man sein vorher erstelltes Profil auswählen kann.
Frage :Wie kann ich das dementsprechend verknüpfen?

Im direkten Aufeinandertreffen ist die Matchansicht in einer Art Tabellenform. Die Punkte starten bei 501. Scores werden direkt darunter angezeigt und mit der alten Summe verrechnet. Im Eingabemenü (Score)möchte ich für jedes zahlenfeld einen Button erstellen. Zudem Multiplikatoren für triple und Double Felder.
Die Statistiken von dem Match sollen im Profil beider Spieler sofort aktualisiert werden. Frage : geschieht das über Übergabe von Variablen?

Findet ihr die App zu umfangreich für einen Einstieg? Welche Methoden muss ich mir unbedingt anschauen?

Vielen Dank für eure Hilfe!
 

Joose

Top Contributor
Die app soll so aufgebaut sein:
Appstart -> Hauptmenü
Hier hat man die Button "Spiel", "Playermanagement" und "Optionen".
Wichtig : Im Fenster Playermanagement soll man Spieler hinzufügen und löschen können. Die hinzugefügten Spieler werden mit Namen direkt im Fenster angezeigt. Wenn man ein Spielerprofil anwählt bekommt man Statistiken zum Average, Doppelquote,Matchhistory etc.
Du vermischt hier den Aufbau der Oberfläche mit der Funktionalität deiner App ;)
Schreibe dir erstmal zusammen welche Funktionalität deine App bieten soll:
  • Spieleprofile anlegen, bearbeiten, löschen
  • Scoreboards für Matches
  • Matchdaten speichern
  • ....
  • ..
Und denk dabei nicht so sehr daran wie die Oberfläche aufgebaut ist. Entsprechend gut programmiert (Trennung UI und Logik) sollte es möglich sein die Oberfläche umzubauen ohne dabei eben die Logik anzurühren.
Gedanken über das Layout bzw. Design kannst du dir natürlich auch machen, aber lieber mal eine hässliche/unübersichtliche App als eine die vl schön ausschaut aber nicht funktioniert ;)

Frage : Hat das was schon mit Datenbanken zu tun?
Wie du die Daten speicherst bleibt dir überlassen! Alles ist möglich von Datenbanken über JSON Dateien bis hin zu XML Dateien.

benutze ich für die Spieler Klassen oder arraylist Methoden
Was sind "arraylist Methoden"?

Im "Spiel"Fenster heißt es 1 gegen 1.
Hier soll es für jeden Spieler einen Button o.ä. geben. Wenn man darauf drückt erscheint eine Liste, aus der man sein vorher erstelltes Profil auswählen kann.
Frage :Wie kann ich das dementsprechend verknüpfen?
Indem dein Button auf den Klick reagiert (Listener) und die Profile aus deiner DataSource (Datenbank oder File) ladet und entsprechend aufbereitet.

..... Die Statistiken von dem Match sollen im Profil beider Spieler sofort aktualisiert werden. Frage : geschieht das über Übergabe von Variablen?
Bei einen entsprechenden guten Aufbau deiner Klassen bzw. Logik wird es viele Methoden geben die Parameter haben ;)

Findet ihr die App zu umfangreich für einen Einstieg? Welche Methoden muss ich mir unbedingt anschauen?
Jein ;)
Anhand deiner Fragen lässt sich schon erkennen dass du in OOP nicht ganz so fit bist. Klar es ist ein Projekt zum Üben, aber da sollte man nicht mit einer App anfangen sondern es lieber als einfache Konsolenanwendung realisieren um sich mehr auf die OOP zu gewöhnen.

Es kommt ganz darauf an für was die App gedacht ist und was sie können soll ... einen Fehler den viele am Anfang machen -> sie wollen alles gleichzeitig realisieren!
Fange einfach mal nur damit an Spielerprofile anzulegen. Danach erweitere die App Schritt für Schritt um weitere Funktionalität.

Was du dir anschauen solltest: Entsprechende Tutorials zur OOP (und App Programmierung). Man kann sich nicht einzelne Methoden rauspicken die wichtig sind ;)
 
Zuletzt bearbeitet:

Kababär

Top Contributor
Findet ihr die App zu umfangreich für einen Einstieg?

Ja. Wenn du keine praktischen Erfahrungen hast im Programmieren, wirst du vermutlich (falls das auch GUI unterstützt sein sollte) recht schnell deprimiert sein.
Auf der anderen Seite: wenn du dich damit beschäftigst und den Kopf nicht hängen lässt, solltest du es dennoch hinkriegen.
Deine Fragen zu beantworten ist etwas schwierig.. man könnte alle Fragen entweder mit ja oder nein beantworten. Kommt eben darauf an wie du das machen willst, das ist "nur" eine Sache des Designs.
Vielleicht kannst du aber auch erstmal versuchen einen Taschenrechner zu programmieren, damit du ein Gefühl dafür kriegst (und nicht zu viel Neues auf einmal kommt).

LG und viel Erfolg


Edit: als ich angefangen hab auf dem Handy zu antworten, war noch keine Antwort vorhanden. Wahnsinn :eek::D
 

SeriousD0nkey

Bekanntes Mitglied
Für den Einstieg würde ich nicht mit App-Entwicklung anfangen. Lerne ersmal die Java-Basics und OOP anhand von Konsolenanwendungen. Bei der Entwicklung für Android (ich gehe mal davon aus du redest von Android) werden dir nämlich schon viele Sachen geliefert (vieleicht meinst du damit die "methoden die du dir anschauen sollst", sonst wüsste ich nicht wovon du sprichst) und du weißt gar nicht, was da passiert und wo diese Sachen herkommen (weil du dafür den Sinn und die Funktionsweise von OOP verstanden haben musst). Und wenn du OOP verstanden hast und zumindest die Java Basics kannst, dann kannst du dich mit der Entwicklung für Android beschäftigen.
Und wie Joose bereits schrieb: Nicht immer alles auf einmal wollen. Schritt für Schritt.
 

Cash

Neues Mitglied
Der Grund warum ich so Oberflächenorientiert denke, ist meine Entwicklungsumgebung. Ich benutze Android Studio. Da kann man die Button schön einfach reinziehen und leicht neue Seiten erstellen, so dass die Oberfläche schon da ist, und ich "nur" noch den Inhalt machen muss. Die paar wenigen Codezeilen konnte ich mir so zusammenmauscheln, aber jetzt stoße ich doch schnell an meine Grenzen wenn es um die gänzliche Umsetzung geht. Das habe ich unterschätzt. An Java bin ich eigentlich wenig interessiert - mein Ziel ist es eine ordentliche Dartscoreapp zu haben, nicht Java zu lernen. Da es aber keine Dartapp gibt die meine Bedürfnisse erfüllt, gibt es für mich keine andere Möglichkeit mein Ziel zu erreichen, außer selbst eine zu entwickeln. Soviel zu meiner Motivation :D

Ich möchte mich - orientiert an euren Tipps - auf etwas beschränken. Nehmen wir das Spielermanagement, d.h. Spieler hinzufügen und dauerhaft speichern, löschen. Ich würde mir das so vorstellen:

Für jeden neuen Spieler wird eine neue Klasse angelegt. (public class Spieler)
Diese Klasse enthält beispielsweise Stringvariablen(Name), Integervariablen(Average/Wurfdurchschnitt).

1. Frage: Wäre das so möglich?
2. Frage: Wie kann ich die Namen, Werte einlesen? Ich habe gelesen es geht über Scanner oder bufferedreader - was ist einfacher/vorteilhafter?
3. Frage: Wie kann ich diese erzeugten Spieler dauerhaft speichern und dann die Werte der Variablen(z.b. Average ausgeben lassen?

Wenn ihr meint, dass die Lage für mich erstmal hoffnungslos weil das keinen Sinn ergibt was ich schreibe, dann bleibt mir wohl nichts anderes übrig als mit den Grundschleim anzufangen. :D

LG
 

Kababär

Top Contributor
1. Ja
2. Scanner reicht
3. Datenbank wäre ne feine Sache. Es reicht aber auch XML, JSON oder einfache eine Textdatei (musst dir halt was überlegen wie "Peter;13;....", also so was wie csv ist auch einfach zum lesen), die du lokal irgendwo speicherst.
Beim Lesen würde ich den Text in eine List<String> speichern und zeilenweise dann ein string.split(";"); machen. Damit erhälst du ein String Array und musst dir für die Werte nur die richtigen Stellen merken.

Ich meine wenn du eh kein Java lernen willst, kannst du es ja so mal probieren, schadet ja nicht. Oder lässt es von Leuten schreiben und bezahlst eben ein bisschen was. Aber Motivation kann viel bewirken :)
 

Nuiton

Bekanntes Mitglied
Also eine Embedded Datenbank aufzusetzen hoert sich nur schwer an, ist es aber gar nicht wirklich. Eventuell schaust du dir das mal an.
 

Joose

Top Contributor
... Da kann man die Button schön einfach reinziehen und leicht neue Seiten erstellen, so dass die Oberfläche schon da ist, und ich "nur" noch den Inhalt machen muss. ....
Ja dieses Oberflächen zusammenziehen verleitet die meisten zu denken es wäre "ganz easy" ;)

Die paar wenigen Codezeilen konnte ich mir so zusammenmauscheln, aber jetzt stoße ich doch schnell an meine Grenzen wenn es um die gänzliche Umsetzung geht. Das habe ich unterschätzt. An Java bin ich eigentlich wenig interessiert - mein Ziel ist es eine ordentliche Dartscoreapp zu haben, nicht Java zu lernen.
Es ist nun mal so, dass man um eine App entwicklen zu können eine entsprechende Programmiersprache können muss.
Also entweder wirst du eben eine Sprache lernen müssen um dir deine App selber zu schreiben oder du musst eben etwas Geld in die Hand nehmen und sie schreiben lassen (oder du findest jmd der es im Umfeld einer Projektarbeit vl gratis macht ;))

Für jeden neuen Spieler wird eine neue Klasse angelegt. (public class Spieler)
Diese Klasse enthält beispielsweise Stringvariablen(Name), Integervariablen(Average/Wurfdurchschnitt).

1. Frage: Wäre das so möglich?
2. Frage: Wie kann ich die Namen, Werte einlesen? Ich habe gelesen es geht über Scanner oder bufferedreader - was ist einfacher/vorteilhafter?
3. Frage: Wie kann ich diese erzeugten Spieler dauerhaft speichern und dann die Werte der Variablen(z.b. Average ausgeben lassen?
Ja ist ein Anfang, dann hast mal eine Klasse (du erstellst für jeden neuen Spieler ein Objekt dieser Klasse ;)).
Von wo willst du die Werte einlesen? DB, File oder vom User eingeben lassen? Scanner und BufferedReader haben beide ihr Vorteile und Nachteile je nachdem was man realisieren will sollte man sich entscheiden.

Wenn ihr meint, dass die Lage für mich erstmal hoffnungslos weil das keinen Sinn ergibt was ich schreibe, dann bleibt mir wohl nichts anderes übrig als mit den Grundschleim anzufangen. :D
Hoffnungslos nicht, aber ohne gewissen Grundlagen der Programmierung wird es sehr schwer.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A 2D subimage detection mit einer AI Softwareentwicklung 0
B Etliche Anfragen von einer IP ablehnen? Softwareentwicklung 2
F Datenspeicherung in Listen statt in einer Datenbank Softwareentwicklung 6
stg File-Download ohne Speichern einer lokalen Kopie Softwareentwicklung 8
D Datenverwaltung einer App Softwareentwicklung 3
K Einlesen einer .dat-Datei (verschiedene Formate) | Entwicklung unter Einsatz von Design-Patterns Softwareentwicklung 0
B In einer virtuellen Maschine entwickeln (Virtual Box) Softwareentwicklung 5
L Parsen einer HTML Seite Softwareentwicklung 3
K Mindestanforderung einer Software Softwareentwicklung 7
C Wie kann ich ein Panel auf einer Tabelle plazieren? Softwareentwicklung 9
R PHP: Auslesen einer ID aus Radiobutton und Nutzung in SQL Softwareentwicklung 2
T Über Joins mehrere Schlüssel aus einer Tabelle auflösen Softwareentwicklung 7
C Darstellung einer dynamischen Bindung Softwareentwicklung 2
I Entwicklung einer UML - KLasse Softwareentwicklung 2
R static methode innerhalb einer klasse ! Softwareentwicklung 5
M In MSSQL ganze Spalte einer Tabelle in andere Tabelle kopier Softwareentwicklung 2
W Statische Klassen oder neue Instanz einer Klasse nutzen? Softwareentwicklung 11
T nur EIN objekt einer klasse erstellen ? Softwareentwicklung 2
m@nu Problem mit einer RegEx Softwareentwicklung 4
K Kommunnikation in einer Applikation Softwareentwicklung 17
K GUI "Inhalte" in einer Datenbank speichern Softwareentwicklung 2
S Aufrufen einer Methode einer abgeleiteten Klasse von Oberkla Softwareentwicklung 4
S Überladen des Rückgabedatentypen einer Funktion Softwareentwicklung 7
G Befehl zum downloaden einer Website Softwareentwicklung 2
D Variablendeklaration in einer iterativen Methode = Böse? Softwareentwicklung 10
C Filterung von geraden und ungeraden Zahlen aus einer Datei Softwareentwicklung 4
D Name einer Instanz einer Klasse IN der Klasse erfahren ?? Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben