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?
Hallo Cupra,
was ist denn dein genaues Problem? Also an welcher Stelle der Umsetzung von Beschreibung in Code hakt es denn?
herbivore
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
Du musst die strings vor dem Rechenen parsen
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
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
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...
Hallo Programmierhans,
da Math.Pow mit doubles arbeitet, fand ich das für eine Integer-Operation nicht so passend.
herbivore
Danke für die schnelle antwort.
das werde ich gleich mal ausprobieren wenn ich heute abend daheim bin.
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?
int Ergebniss = int.Parse(textBox2.Text)+ int.Parse(textBox1.Text);
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
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...
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
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)
Hallo Cupra,
wenn du textBox1 schreibst, ist es weder eine String noch eine Zahl sondern eben eine TextBox.
herbivore
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...
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.
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
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).
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?
Hallo Cupra,
nein, mit einer Schleife gerade nicht.
... immer die Kosten für den jeweiligen Levelaufstieg ...
herbivore
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)
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
werde mal versuchen des heute abend umzubasteln.
Wär ja super wenn ich das bald hinbekommen würde. 😉