Formel verbessern

Neue Frage »

nyx Auf diesen Beitrag antworten »
Formel verbessern
So damit ihr versteht worum es geht, hier die Erklärung:

Die Formel soll für ein Browsergame genutzt werden. Pro Stunde wird eine gewisse Anzahl von Ressourcen produziert. Sobald die zu gebrauchende Energie über die aktuell verfügbare Energie steigt, soll die Ressourcen-Produktion gesenkt werden.

Formel = (((Energie_brauchen / (Energie_haben / 100)) - 200) / (-100))

Metallproduktion * Formel
Kristallproduktion * Formel
...

Jetzt wollte ich die Formel ein wenig verfeinern. Folgende Argumente sollen noch behandelt werden.
1) Die Produktion sollte immer > 0 sein.
(Am Besten wäre folgendes: Umso mehr Energie nicht vorhanden ist, umso näher kommt die Formel dem Wert 0.5 - Bei 0.5 hört die Formel auf.)
2) Die Produktion darf nicht in den negativen Bereich geraten.

Ich hoffe ihr versteht das in etwa. Ist ziemlich schwer das zu erklären smile
Wenn es dafür Lösungen gibt, wäre ich über Antworten sehr dankbar.
Steve_FL Auf diesen Beitrag antworten »

du willst eine Formel, die nicht ins negative Fallen kann?

Wenn du das "programmierst" müsstest du mMn eher beim programmieren darauf achten, dass nur dann die Werte übergeben werden, wenn die Formel auch positiv bleibt.
Ich kann mit dieser Formel nicht viel anfangen...da ich nicht weiss, wie das ganze funktioniert.

Aber ich kann dir mal sagen, dass du die Formel auch so schreiben könntest:
Formel = ((100 * Energie_brauchen / Energie_haben) - 200) / (-100)

so sieht das ganze mMn etwas schöner aus, hat aber noch keinen Einfluss darauf, ob die Ergebnisse negativ werden können.

Wieso rechnest du denn noch - 200? Und wieso durch (-100) ?

Das versteh ich nicht...ich verstehe auch nicht, wieso du die Energie_haben durch 100 dividieren willst...

Aber man kann auch diese Formel noch umstellen, indem wir das / -(100) wegkürzen:

Formel = (( (-1) * Energie_brauchen / Energie_haben) + 2)
Formel = 2 - (Energie_brauchen / Energie_haben)


jetzt sieht man, dass die Formel dann ins negative fällt, wenn der Energiebedarf mehr als das doppelte der vorhandenen Energie beträgt.
Ich denke, soweit solltest du es gar nicht kommen lassen...
oder du musst eine Funktion schreiben, die diesen Fall behandelt.

Aber das geht in die Programmierung und ich bin nicht geübt im programmieren von Browsergames...

ich hoffe, ich konnte dir dennoch etwas helfen. Ansonsten frag noch mal.

mfg
nyx Auf diesen Beitrag antworten »

Wäre nie auf den Gedanken gekommen, eine so lange Formel so zu kürzen... Danke!

Formel = (2 - (150 / 100))

Also ich wollte die Ressourcenproduktion proportional zu der Energie sinken lassen.
Bsp:

100 Ressourcen/Stunde bei positiver Energie
90 Ressourcen/Stunde bei 10% mehr Energie als vorhanden.
...

Das Klappt mit der Formel auch schon wunderbar:
Formel = (2 - (150Energie_brauchen / 100Energie_haben))
<-- Da kommt 0.5 raus. (50%)
Folglich muss ich die Produktion nur * den Wert der Formel rechnen. Das wären dann 50% weniger Ressourcen pro Stunde.

Das problem ist folgendes:
(2 - (220Energie_brauchen / 100Energie_haben))
<-- Da kommt-0.2 raus. (-20%)
Wenn ich jetzt die Produktion mal den Wert (-0.2) rechnen würde, dann würden keine Ressourcen produziert, sondern abgezogen werden.

Ich hoffe, das ist so ein wenig verständlicher.
Mazze Auf diesen Beitrag antworten »

Du willst doch das maximal die Produktion 50% langsamer ist. Füge eine zusätzliche Bedingung hinzu. Ist brauchen/haben >= 0,5 soll standart mäßig auf 50% gegangen werden, andern falls wird die Formel wie oben verwendet.
nyx Auf diesen Beitrag antworten »

Jup das könnte ich mit einer IF-Abfrage so machen.
Aber wäre das theoretisch auch möglich, die Bedingung mit in die Formel einzubinden? Oder ist das unmöglich?
Steve_FL Auf diesen Beitrag antworten »

so eine Bedingung wirst du nur sehr sehr schwer in die Formel einbauen können. Es gibt wäre wahrscheinlich schon möglich, allerdings sehr kompliziert und ich denke, die IF-Abfrage ist nicht nur einfacher, sondern auch schneller vom Rechner auszuführen.

mfg
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »