Umsetzung einer Idee zur einer ersten simplen App - Anfängerfragen, Design- und Layoutfragen

  • Hallo,


    ich hoffe, dass mirhier ein paar erfahrene Android-Programmierer etwas unter die Arme greifen können. Ich bin neu in der Android-Welt und möchte ein erstes, ganz kleines Projekt umsetzen, um erste Erfahrungen zusammeln:


    Anforderungsblatt:
    Die App soll nur als Hilfmittel für ein Würfelspiel dienen, um nicht selbst die Punkte notieren und addieren zu müssen. Die App soll 2 Layouts(Activities?) haben. Nennen wir Sie L1 und L2. Auf L1 sollen die Namen der Mitspieler (2-8) stehen, sowie diverse Buttons mit den erreichbaren Punkten. Bei Klick auf einen der Buttons, soll dem gerade aktiven Mitspieler die entsprechende Punktzahl gutgeschrieben werden.


    L1 dient also dazu, den Spielern die Punkte gutzuschreiben und eine (Schnell-)Übersicht der Spieler inkl. der Punktzahlen zu bekommen.


    L2 soll dagegen lediglich eine Tabelle enthalten, um den Punktverlauf nachvollziehen zu können. Als Spaltenbeschreibungen sollen die Namen der Mitspieler eingetragen werden, Zeilenbeschriftung ist die jeweilige Rundenzahl(1-20).


    Beispiel:
    Spieler 1 würfelt in Runde 1 eine 10. Ich drücke in der App (Layout 1) den Button für10 Punkte. Folgendes soll nun passieren: Auf L1 soll der Punktstand für Spieler 1 aktualisiert werden, aktiver Spieler muss auf Spieler2 geändert werden, in der Tabelle auf Layout 2 soll ein Eintrag in Zeile 1 /Spalte 1 ein Eintrag mit dem Wurfergebnis erzeugt werden. Nun folgt Spieler 2....


    Das war es schon. Im Großen und Ganzen weiß ich auch, wie das umzusetzen ist – trotzdem habe ich einige Fragen:


    1) Klassendesign: Ich würde 2 Klasse anlegen – Spiel (int:anzahlMitspieler,int:anzahlRunden, int:aktuelleRunde,Mitspieler:mitspieler1, etc.) und Mitspieler (string:name, int:punktzahl). Ich bin mir allerdings unsicher, ob die Klasse „Spiel“ Sinn macht, da ich ja immer nur ein Objekt der Klasse hätte. Wie sieht hier eine gute Lösung aus?
    2) In welche Klasse gehört die Methode wurf(int augenzahl)? In die Klasse Mitspieler oder Spiel?
    3) Überhaupt keine Ahnung habe ich, wie ich die Tabelle in L2 realisieren kann und wenn die Tabelle erstmal steht, wie ich sie korrekt befülle. Auch müsste zur Laufzeit die Anzahl der Mitspieler berücksichtigt werden.
    4) Ist der folgende App-Aufbau gut?
    -App-Startseite mit Optionen „Anzahl Mitspieler“
    -2. Optionsseite zum Eintragen der Namen (Wie setze ich das um, dass die Anzahl der Eingabefelder mit der Anzahl der im Schritt 1 angegebenen Mitspieler übereinstimmt?)
    - Spielstart (sind die obene genannten (Options-)Punkte extra Activities oder legt man sowas in das Einstellungsmenü?



    Javaliteratur stehtmir zur Verfügung – ich brauche jetzt erstmal den einen oder anderen Ansatz, wie und womit ich die o.g . Punkte am besten umsetze;ich hoffe, dass ihr mir hier ein wenig helfen könntet...


    Vielen Dank imVoraus!

  • Hi Marco, und willkommen im Forum !


    Es ist schön zu lesen das du mit deiner ersten App nicht gleich durch die Decke schiesst :P
    Was ich vorab gerne noch wissen würde, du hast geschrieben dir steht Java Literatur zur Verfügung. Wie gut/lange programmierst du denn in Java ?
    Denn so einfach wie man sich solch eine App ausdenkt (nur 2 Klassen) wird es oft nicht. Auch der Übersichtlichkeit halber macht man gerne mal mehrere Klassen ;)
    Und das Anlegen und managen der Spieler kann ziemlich komplex werden, das du auch noch die Spielstände untereinander vergleichen musst.


    Falls du auch mit Java noch am Anfang stehst wird es kitzlig 8)

  • Erstmal danke für Deine Rückmeldung. Aus dem Studium kann ich auf einige Java-Grundlagen zurückgreifen. Allerdings muss ich feststellen, dass trotz theoretischer Grundkenntnisse die ersten eigenen Gehversuche gar nicht so einfach sind. Ich denke, wenn ich ein paar Ansätze erhalte, kann ich mir den Großteil selbst erarbeiten... Aktuell interessieren mich nach wie vor meine Fragen 1-4, da ich hier in den letzten Tagen noch nicht so richtig weiter gekommen bin...

  • Also zu L2 geb ich dir mal etwas Code, eigentlich nicht Sinn der ganzen Sache aber da JTable ein wirklich nerviges und komplexes Objekt ist, machen wir mal ne ausnahme.
    Da ich mich selbst immer wieder über disen Schwachsinn ärgere hab ich mir einige Methoden geschrieben die ich seither immer wieder benutze.


    du brauchst Variablen:

    Java
    private JScrollPane scp;
      private JTable tbl;
      private JTableHeader header;
      private TableColumn col;
      private DefaultTableModel deft;
      private Font f;
      private String[] headerNames = { "IP", "Name", "Version" };
      private int[] colBreite = { 150, 150, 300 };





    eine Methode die dir dir ganze Tablle zusammenbaut: (gut wenn du sie immer wieder neu erstellen lassen möchtest)


    Weitere Methoden die du einfach mit passenden Parametern füttern musst:


    Du musst dir eines zu Herzen nehmen wenn du mit JTables arbeitest ! Folgendes: Arbeite wenn möglich immer mit dem Tabllenmodell!

    Code
    tbl.getModel().getValueAt(x, y);
    tbl.getModel().setValueAt(x, y, value);

    Es gibt sozusagen 2 Schichten oder Ebenen bei einer JTable, die die du siehst, und das Datenmodell (nicht sichtbar) darunter. Im Prinzip werden die Daten die du in eine Tabelle schreibst in beiden Schichten übereinstimmen, es gibt aber Fälle in denen das nicht unbedingt der Fall ist.
    z.B wenn eine Spalte ausgeblendet ist, oder wenn du die Tabelle Alphabetisch oder Numerisch sortieren lässt.
    Dann wird oft nur die sichtbare Schicht sortiert.

    Code
    // in diesem Fall gibt 
    tbl.getValueAt(x, y);
    // einanderes Ergebnis zurück als
    tbl.getModel().getValueAt(x, y);


    Ich hoffe das hilft dir weiter ;) ;) ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!