Laden...

Neuling brauch hilfe

Erstellt von Cupra vor 18 Jahren Letzter Beitrag vor 18 Jahren 3.005 Views
C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren
Neuling brauch hilfe

Hallöchen zusammen,

Ich bin absoluter newbie.

Ich wollte nen rechner erstellen, wo man 2 eingabefelder hat.

soll ein skillrechner werden für ein spiel.

hier mal einen auszug aus dem spiel:

Die Trainingskosten für die Steigerung von x-1 auf x bei einem Startwert von y lassen sich anhalt folgender Formel berechnen:

(x - y)²

Für den Usercharakter gilt y = 5 (Grundwert bei Beginn des Spiels), bei den Wächtern ist es zwischen 1 und 40 abhängig von dem Grundwert des gekauften Wächters.

Thx @ gh71 für diese Formel

Anders ausgedrückt für den Spielerchar (thx @ Lexiko) :

(Gegenwärtiger Skilllevel - 4)²

(Beispiel: von Level 44 auf 45 => (44-4)² = 1.600 Gold

vllt könnt ihr euch das jetzt besser vorstellen.

Ich weiß aber nicht wie ich den code schreiben soll für die berechnung.

Kann mit da jemand freundlicherweise weiterhelfen?

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

was ist denn dein genaues Problem? Also an welcher Stelle der Umsetzung von Beschreibung in Code hakt es denn?

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

ich habe bisher erst so versuche wie hello world und so versucht.

aber wenn ich die formel veruch um zubasteln. klappt des auch net

ich dachte wenn ich doppel click auf den button mach (zum code gelange)

und dann einfach textbox1 -4 + textbox2 * ² mache geht des.

aber fehlschlag.

mir fehlt da irgendwie der durchblick.

Wäre nett wenn du oder ein anderer mir da hilfestellung geben könnt.

Habe mir ja schon ein buch geholt, aber daraus werde ich noch nicht ganz schlau

1.549 Beiträge seit 2004
vor 18 Jahren

Du musst die strings vor dem Rechenen parsen

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

du musst, wie S.H.-Teichhof schon sagt, zunächst die Texte, die in die TextBoxen eingegeben wurden, in Zahlen umwandeln. So machst du aus dem Text in TextBox1 eine int-Zahl: int.Parse (TextBox1.Text)

Ansonsten kannst du - wie du versuchst hast - eine Formel so ziemlich 1:1 übernehmen. Allerdings gibt manche Funktionen (wie hier die Quadrat-Funktion) nicht direkt oder sie heißen etwas anders. Für das Quadrieren nimmst du einfach die Zahl oder den Ausdruck mit sich selbst mal.

Habe mir ja schon ein buch geholt, aber daraus werde ich noch nicht ganz schlau

Sowas sollte aber alles in dem Buch stehen. Ich denke du wirst nicht drum herum kommen, dich da noch intensiver einzulesen. Das Forum kann zwar spezielle Fragen beantworten, aber keine Einfühung in die Programmierung geben.

herbivore

4.221 Beiträge seit 2005
vor 18 Jahren

Original von herbivore
Allerdings gibt manche Funktionen (wie hier die Quadrat-Funktion) nicht direkt oder sie heißen etwas anders. Für das Quadrieren nimmst du einfach die Zahl oder den Ausdruck mit sich selbst mal.

Oder Du nimmst Math.Pow für die Potenzierung

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Programmierhans,

da Math.Pow mit doubles arbeitet, fand ich das für eine Integer-Operation nicht so passend.

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

Danke für die schnelle antwort.

das werde ich gleich mal ausprobieren wenn ich heute abend daheim bin.

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

habe es ausprobiert, aber das haut leider nicht hin.

Ich habe es mal einfach probiert also textBox1 + textBox2

 private void textBox1_TextChanged(object sender, EventArgs e)
        {
            int.Parse(textBox1.Text);

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            int.Parse(textBox2.Text);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = textBox1 + textBox2;

        }
    }

aber leider funzt des net.

Kann mir da jemand weiterhelfen?

1.549 Beiträge seit 2004
vor 18 Jahren
int Ergebniss = int.Parse(textBox2.Text)+ int.Parse(textBox1.Text);

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

4.221 Beiträge seit 2005
vor 18 Jahren

So in der Art


        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = (int.Parse(textBox1.Text) + int.Parse(textBox2.Text)).ToString();
        }

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

S.H.-Teichhof und Programmierhans waren ja nun so freundlich das explitzit hinzuschreiben. Aber es mir scheint, du hast vorher gar nicht richtig gelesen. Denn ich hatte ja oben extra schon geschrieben, dass du den Text in der TextBox (und nicht etwas die TextBox selber) erst in eine Zahl wandeln musst, damit du damit rechnen kannst.

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

das habe ich ja gemacht.

Ich habe dann gemeint wenn ich dann nur noch textBox1 schreibe dann meint er gleich das es eine zahl ist.

wusste nicht das ich den gesamten code schreiben muss. also das: (int.Parse(textBox1.Text)

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

wenn du textBox1 schreibst, ist es weder eine String noch eine Zahl sondern eben eine TextBox.

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

ahh jetzt check ichs. sorry. bin blutiger anänger^^

4.221 Beiträge seit 2005
vor 18 Jahren

Jeder fängt mal klein an.

Nur so als Tipp: Wenn Du ein Form mit dem Designer erstellst ... schau Dir mal den Code an welcher generiert wird um die Controls zu platzieren und deren Werte zu setzen. So wirst Du einiges verstehen lernen.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

wiegesagt danke für eure hilfe.

Der rechner funzt soweit wie ich das wollte.

Aber vllt kann mir einer bei meinem nächsten problemchen helfen.

Ich versuche schon verzweifelt eine formel auf die beine zu stellen um was zu rechnen.

Aber so wie ich mir das aus denke wird die formel immer länger um so höher ich rechnen will.

Ich erklähr einfach mal mein anliegen. Vllt findet sich einer der da fit genug ist mir da zu helfen.

Ich will mir ja einen rechner machen für ein onlinegame.

Da hat man verschiedene werte (diese kosten virtuelles gold):

Hier mal ein auszug was diese kosten sollten:

Eigenschaftssteigerung auf | Trainingskosten
Level 46 | 1.681 Gold
Level 47 | 1.764 Gold
Level 48 | 1.849 Gold

usw...

Die formel ist folgender für die berechnung:

(x - y)²

also:
(Gegenwärtiger Skilllevel - 4)²

(Beispiel: von Level 44 auf 45 => (44-4)² = 1.600 Gold

ich will das jetzt aber folgender maßen machen:

angenommen ich bin auf skill 46.
will aber wissen wieviel gold ich benötige das ich auf skill 55 komme

habe da ne formel mal mit skill 10 gerechnet um auf skill 16 zu kommen:
(10-4)² + (10-3)²+ (10-2)² +(10-1)²+ (10)²+ (10+1)²

aber um auf so ein höheres skill ich rechnen will um so g´rößer wird der rattenschwanz.

weiß da jemand eine formel für.

ich zerbrech mir der kopf die ganze zeit und komme asuf kein ergebniss was sich gut umsetzen lässt.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

berechne in einer Schleife immer die Kosten für den jeweiligen Levelaufstieg und summiere die Kosten auf.

Das sind absolute Basics. Du solltest schnellst möglich ein Buch zu Rate ziehen, um dir zunächst die Grundlagen der Programmierung anzueignen.

herbivore

I
1.739 Beiträge seit 2005
vor 18 Jahren

Programmierung ist natürlich für Einsteiger immer Thema. Mathematik auch(hat natürlich mit Programmierung zu tun), ich würde empfehlen eine andere Basis zu benutzen(zum Beispiel 2 anstelle von 10).

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

Ok eine schleife denke ich krieg ich auch mit den 2 büchern wo ich mir geholt habe zusammen, aber sehe ich das richtig das dann immer den ganzen Rattenschwanz mehrfach schreiben muss?

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

nein, mit einer Schleife gerade nicht.

... immer die Kosten für den jeweiligen Levelaufstieg ...

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

Also ich habe jetzt ja meinen rechner soweit das er mir rechnet was das jetzige lvl kostet

Ist glaub ich ein wenig umständlich aber funzt:


private void button1_Click(object sender, EventArgs e)
        {
label1.Text = (int.Parse(textBox1.Text) - int.Parse label2.Text)).ToString(); // textbox1 ist der Skillwert. label2 ist eine Zahl = 5
label1.Text = (int.Parse(label1.Text) * int.Parse label1.Text)).ToString();

        } 

von daher gesehen bin ich schon einwenig stolz auf mich (danke für eure hilfe).

aber wie meinst du das:

berechne in einer Schleife immer die Kosten für den jeweiligen Levelaufstieg und summiere die Kosten auf.

ich versteh nicht ganz was du damit meinst (vllt denke ich auber auch zu kompliziert)

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Cupra,

weniger umständlich:


int iTmp = int.Parse(textBox1.Text) - int.Parse (label2.Text);
label1.Text = (iTmp * iTmp).ToString();

Du wolltest doch die Summe der Kosten der Levelaufstiege haben:


iSumme = 0;
iDiff = int.Parse (label2.Text);
for (int iCurrLevel = 1; iCurrLevel <= iToLevel; ++iCurrLevel) {
   iTmp = iCurrLevel - iDiff;
   iTmp = iTmp * iTmp;
   iSumme += iTmp;
}

Oder so ähnlich, mir geht es nur um das Prinzip.

herbivore

C
Cupra Themenstarter:in
10 Beiträge seit 2006
vor 18 Jahren

werde mal versuchen des heute abend umzubasteln.

Wär ja super wenn ich das bald hinbekommen würde. 😉