Laden...

Programmaufbau des angehängten Projekts verbessern

Erstellt von HolySheepy vor 15 Jahren Letzter Beitrag vor 15 Jahren 4.875 Views
H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren
Programmaufbau des angehängten Projekts verbessern

Hi,

hab mal etwas angefangen statt nur son kleines Beispielprogramm, das nichts braucht versucht mal etwas größeres zu machen ^^ Nur irgendwie denk ich das wie ich es im Moment mache es ziemlich schlecht/ineffiezient/unübersichtlich ist...

hm kann mir da eventuell jemand helfen? Ich lad mal mein Projekt hoch, wenn jmd Zeit hat kann ers ja mal ansehen und sagen was man anders/besser machen sollte(wohl so gut wie alles :<)

http://uploaded.to/?id=gz7pk0

[EDIT=herbivore]Für eventuelle Nachahmer. Bitte nicht ungefragt komplette Projekte hochladen/anhängen. Siehe [Hinweis] Wie poste ich richtig? Punkt 4.[/EDIT]

140 Beiträge seit 2007
vor 15 Jahren

Ihr Free-Traffic ist aufgebraucht!
...
Holen Sie sich jetzt Ihren uploaded Premium-Account!
...

Nein!

Viel Erfolg (mit wenig Aufwand),
Sisyphus

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren
142 Beiträge seit 2007
vor 15 Jahren

Benutz als "Mirror" doch die Möglichkeit,
die Datei an deinen Post anzuhängen...

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

oh stimmt gibts ja auch ^^"
ganz vergessen :x

467 Beiträge seit 2007
vor 15 Jahren

pack die Klassen doch nicht alle in eine Datei
was soll das Teil überhaupt machen? Schaue mal ob ich ein Paar Vorschläge für bessere Lösungen finde.

kenns du MaskedTextbox? Ist besser als alle chars einzeln prüfen. Vor allem bei so einfachen Sachen, wie nur Zahlen
ich bin nicht sicher, ob die statische Formvariable in der Programmklasse guter stil ist.
wozu hast du die Methode textBox1_KeyPress in der Formklasse? So eine Textbox gibt es nicht., dh. sie wird nie aufgerufen

E
151 Beiträge seit 2007
vor 15 Jahren

Was mir sofort aufgefallen ist:

Mach dir eigene Files für jede Klasse.
Du findest sonst bald nichts mehr!

edit: Wenn man zu langsam ist -.-

Was dein Klassenkonzept angeht:
Ich würde eine Basis-Klasse "Char" anlegen in der Str, Dex, Vita, Mana und eine List<item> liegt. Dann läßt du jede Charakterklasse davon erben und machst dort Methoden für LvlUp usw. immerhin ändern sich die Werte von Charklasse zu Charklasse anders. Mit der Itemliste kannst du dann auch bequem die weiteren +Stats ausrechnen.
Aber mit den Items wirst du sowieso ein Problem bekommen... ohne Datenbank...

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

Wieso ohne Datenbank? ^^

Hm das mit der der TextBox isn überlbeibsel vom Designer

MaskedTextbox habe ich am Anfang benutzt, allerdings finde ich dieses PromptChar Zeug extrem störend und hab deswegen das so gemacht, hab zwar gegoogelt aber anscheinend kann man Promptchar nicht ganz weglassen, und mit Leerzeichen störts immernoch

hm mit den Methoden für Level-Up...
Wie genau sollte das dann gehen?
Wenn jemand z.b. Die Charakterklasse ändert muss ja alles neu Berechnet werden. Life, Mana und Stamina hängen jeweils von VIT, ENE, Level und Charakterklasse ab.

Kann ich nicht einfach einen Methode in der Hauptklasse Charakter bauen(von der die anderen Erben) und irgendwie die Variablen ersetzen? Also das ich in jeder abgeleiteten Klasse sage, Lvl Up Hp Steigerung 1 Punkt, 2 Punkte, etc und die Methode dann diese Variablen verwendet?

Mein Hauptproblem ist wegen dem Form...
Wie mach ich das am besten das ich auch von anderen Klassen draufzugreifen kann?

467 Beiträge seit 2007
vor 15 Jahren

ich würde sagen, dass es sinnvoller wäre(als das was du machst) im Konstruktor der Form dem Konstruktor der Klassen eine this Referenz zu übergeben. Dass es besser ist, Bals die staticvariable in der Programmklasse bin ich mir ziemlich sicher.

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

hm wär ne Idee

nochmal dazu die Berechnung der verschiedenen Klassen "auszulagern"

hm bins von Scriptsprachen eher gewohnt alles sehr dynamisch zu basieren, also mit Variablen zusammensetzen, gäbe es dann da eigentlich eine Möglichkeit über einen String eine Klasse anzulegen? Also wenn ich den String foo habe in dem "Sorc" steht kann ich dann damit char = new Sorc(); machen?

Also ohne den mit select..case//switch abzufragen.

Gibts denn zu Programmaufbau gute Tutorials? Wenn ich welche suche find ich immer nur so kleine Beispielprogramme die nur ihre Main-Klasse haben.
Oder halt was Konsolenbasiertes oder so 😠

E
151 Beiträge seit 2007
vor 15 Jahren

Naja du brauchst irgendeine Quelle von wo du die Stats der Items bekommst.
Natürlich kannst du das auch die User auch eingeben lassen was sie für Items benutzen (dh die Stats jedes Items) und das dann irgendwo speichern (wenn du eine Speicherfunktion machen willst).

Eine andere Möglichhkeit was die Klassen betrifft wäre, dass du nur eine Klasse machst, dir doch alle Stats speicherst und dazu noch einen string charklasse oder so (Außerdem würde ich das Level speichern). Dann musst du zwar in der lvlUp-Methode die Charklasse überprüfen, kannst sie aber jederzeit problemlos ändern. Diese Überprüfung brauchst du weil sich in D2 die Stats bei jeder Charklasse anders ändern. Genauso wenn Stats geskillt werden!

http://diablo3.ingame.de/spiel/chars/

edit:
Ich muss mir abgewöhnen die Antworten so lange offen zu lassen -.-

Wenn es mit der 1 Klasse machst kannst du in der Klasse einen Konsturktor anlegen dem du die Charklasse übergibts und der dem entsprechend die Werte setzt.


//Konstruktor
public char (string charKlasse)
{
   switch(charKlasse)
   {
      case "Paladin": ....
   }
}

//Instanzierung
Char karakter;
//Im Konstruktor der From
karakter = new Char(comboBoxClass.Text);

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

das wär dann ja im Prinzip wieder das was ich im Moment habe ^^"

E
151 Beiträge seit 2007
vor 15 Jahren

Eigentlich ja (wobei ich deinen Code nur schwer nachvollziehnen kann...), nur das es übersichtlicher und logisch von der Form getrennt ist.

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

nuja hab ja gemeint ob das irgendwie ohne select..case/switch geht ^^
wie änder ich dann die charklasse? einfach eine neue klasse erstellen und den klassenname an den constructor übergeben?

E
151 Beiträge seit 2007
vor 15 Jahren

Mit dem Change-Event der ComboBox karakter auf eine neue Instanz setzen würde ich sagen.

Die Frage ist, was du alles übernehmen willst wenn die Charklasse gewechselt wird...
Was ich aus deinem Code bis jetzt gelesen hab machst du sowieso einen Reset

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

nuja muss ich noch gucken, am besten wäre halt einfach nur das er Stats erhöht wenn die zu niedrgi für die neue Klasse sind und sonst halt Leben und so neu berechnet und alles andere so behält

E
151 Beiträge seit 2007
vor 15 Jahren

Auch kein Problem, schreibst du dir eine Methode charclassChanged(string newCharClass) in der du die Werte für Leben, Mana und Stamina neu berechnest.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo HolySheepy,

ich wundere mich, dass du so positive Resonanz erhalten hast. Im allgemeinen gilt das Anhängen von Projekten und nach (Design-)Fehlern fragen hier als verpönt. Siehe [Hinweis] Wie poste ich richtig? Punkt 4.

herbivore

H
HolySheepy Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

Hallo HolySheepy,

ich wundere mich, dass du so positive Resonanz erhalten hast. Im allgemeinen gilt das Anhängen von Projekten und nach (Design-)Fehlern fragen hier als verpönt. Siehe
>
Punkt 4.

herbivore

Hm mal sehen, Google war ich schon wie bereits geschrieben find ich da nix gescheites drüber...

Ein Thema pro Thread... hm kA ich wurde bisher meistens angeschnauzt wenn ich für alles nen eigenen Thread eröffne, selbst wenn das in den Foren-Regeln stand.
Aber hat ja eigentlich ans Thema angeknüpft also von daher

Full Quotes, keine?
Richtiges Forum, hm denke schon
Programmaufbau, hm ja darum gehts ja o.o Stichwort Forensuche, Schlagwörter unso

Hm und wie soll man mir sagen was ich falsch gemacht habe ohne das ich den kompletten Source gebe? An Code-Stückelchen erkennt man ja nicht den Aufbau des Programmes

Fehler/Fehlermeldung gibts keine
Gedrängelt hab ich nicht, meine Lösung hab ich gepostet, bzw über die Aussagen anderer diskutiert

Hm darf man Doppelposten?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo HolySheepy,

ist ja schön, dass du unsere Posting-Regeln so umfassen kommentierst. Nötig war das nicht, weil ich mich nur auf Punkt 4 bezogen habe.

Hm und wie soll man mir sagen was ich falsch gemacht habe ohne das ich den kompletten Source gebe? An Code-Stückelchen erkennt man ja nicht den Aufbau des Programmes

Die Antwort ist einfach: es war schon falsch den Thread zu eröffnen. Das ist keine Aufgabe für ein Forum, sondern für eine Person aus deinem privaten Umfeld (Lehrer, Ausbilder, Tutor o.ä.). Wenn du so eine Person nicht hast, musst bzw. kannst du versuchen, so eine Person aufzutun. Das ist aber nichts worüber wir diskutieren müssen. Unsere Regeln sind da eindeutig.

Hm darf man Doppelposten?

Du meinst, zwei oder mehrere Beiträge des gleichen Autors, die direkt hintereinander stehen? Man sollte sie nach Möglichkeit vermeiden, aber es gibt natürlich Gründe das zu tun, z.B. [Hinweis] Wie poste ich richtig? Punkt 9.

herbivore