Def Beschränkung durch if/when/else

Todes1989Engel

Gast
So mein Vorschlag den es zwar schon gibt ich wollte ihn bei dem text jedoch lieber in einem neun thread aufmachen:

Das Problem 1 Angreifer Stadt gegen eine Stadt mit Def aus
anderen Städten ... gleich Angreifer verpufft
Das sollte jeder der mal größer war und krieg etc mal hatte schon passiert sein.

Besser wäre es doch, vor dem kampf beim Verteidiger ne Formel ablaufen zu lassen
zusammen mit z.b. na if Abfrage oder ähnlichen, welche ja auch einfach zu programmieren sind.bzw in die kampfrechnung mit einzubeziehen sollte das doch auch Relative einfach sein oder ?

Variablen:

Angreiferunits=Au (in BHk)
=c=10.000-15.000 zufällig ausgewählt (oder wenn das zu kompliziert eine Konstante wie z.b 12.500)
Du1=TATZÄCHLICHE DEFFENDE UNITS platzhalter wird erst in der if abfrage belegt)
Bauernhofkapazität=Bhk
Defunits= Du (in Bhk)

Und den halt:(ich lass mal die programmiersprache weg damit auch wirklich jeder den Vorschlag versteht und kommiten kann)
-werde nach der if abfrage nochmal auf Teile davon eingehen also nicht im Kopf gleich mekkern ;) )

If{ ( Du>c)

then ( setze Du1 =Du - (Du-c) + Bhk)

else ( Du=Du1)

und den halt die units aus du1 gegen die off units kämpfen lassen.

So nun zur Teilerklärung:
Ich weiss ganz so einfach wird es nicht Du1 kann nicht aus einer einfachen konstanten bestehen (wollte es nur als idee erstmal einfach halten), jedes unit müsste also eine konstante in dieser konstante sein ... wobei die units ja eh schon vorhandene konstanten haben werden...

Bedeutet also Du= Schleuderer+Reiter+Hoplite+Schwerter+Birmen...
(halt jedes unit zusammen = Du)

Das Gleiche natürlich später mit den anderen Werten(hierzu gleich)
Du1 =Schleuderer+Reiter+Hoplite+Schwerter+Birmen...
(halt jedes unit zusammen = Du1)

so jetzt zum genauen Abzug der Einheiten im Abschnitt :
"then ( setze Du1 =Du - (Du-c))"

Damit jedes Unit auch gleich gemacht wird, also damit gerechnet werden kann (eig wie bei brüchen wo man den gleichen Nenner braucht),
sollten erstmal stumpf Alle Bauernhofplätze der Defunits zusammen gerechnet werden.
Danach werden die Variablen der Einheiten sowie ihr Wert benötigt:

ALS BEISPIEL
ich will es erstmal einfach hier halten meinte ich(Deswegen werde ich die units des Angreifers und den kampf erstmal vernachlässigen mich aber auf Wunsch und bei Zeit auch damit auseinander setzen)desweiteren werden ich zwar 3-4 einheiten aufeinmal in der Rechnung benutzen habe nur keine Lust jetzt alle zu zeigen, da es mir für nen Vorschlag zuviele Vaariablen sind die ich zu Definieren habe etc und es verliert sonst ja auch der Leser evtl den Überblick.
then ( setze Du1 =Du - (Du-c) + Bhk)
Die Rechnung grade bezieht sich auf obige Anweisung der Teil


1.Beispiel:
Schwertkämpfer=St
Geg: Du=35000 c=12.500 Au=Werden vernachlässigt
Bhk=2000 <-- Weiss nicht obs gibt halt einfacher Wert ST

wobei in diesem Bsp. Du=ST

nun würden wir Als Zwischenschritt(Um nicht evtl. andere Units zu vernachlässigen)Eine Abfrage einbauen müssen, welche uns überhaupt erstmal sagt, aus was "Du" eig. besteht also welchen Units und ihrer Anzahl
gepeichert in ihren Variablen werden nur jene über 0 in der Anzahl
(wobei es sowas ähnliches schon geben müsste ? Im der normalen Kampfrechnung)
nun nehmen wir einfach Du als Anzahl der gesamt Defunits (sind ja in Bhk)
Das sind Ja den 100 Prozent der Defunits also als Rechnung:

Du=100%
da Du im Bsp. gleich St ist, ist

St gleich 100%
Damit würde die Abfrage den schweren Teil überspringen und einfach nur 12.500 St verteidigen lassen:

then ( setze Du1 =35000 - (35000-12500) +2000)
then ( setze Du1 =35000 - (22500)+2000)
then ( setze Du1 =12500+2000)

Du1 wäre hier also 14500 BHk dürfen verteidigen, wobei wir uns, falls c=konstant sein soll uns viel Arbeit sparen würden...
Da die Formel Ja immer Du1 = 12500+Bhk lauten würde.
Bei einer Varablen wäre das natürlich anders ...

zurück zu Du1:
14500Bhk entsprechen hier weil nur St also einfach 14500St werden bei der Verteidigung mit einbezogen.

der angreifer greift normal an .

2.Bsp:(hoffe ihr seid noch nicht genervt vom lesen den :grepolis: )

Geg: genau wie oben ( Schwertkämpfer=St
Geg: Du=35000 c=12.500 Au=Werden vernachlässigt
Bhk=2000 <-- Weiss nicht obs gibt halt einfacher Wert ST

dazu hier noch:
Hoplite=Hp
Bogenschützen=Bg
Pegasoi=Soi


wobei in diesem Bsp. Du=Hp+Bg+Soi+St

nach der Abfrage der Anzahl erhalten die Variablen Hp+Bg+Soi+St alle einen Wert zu gewiesen.
Hier:
Hp= 5000 Bg=10000 Soi=500(in Bhk 10000) St=10000

Danach werden diese in Bhk umgerechnet. Siehe oben in Klammern.
(Ich weiss natürlich auch das in der wirklich Umsetzung man nicht mit sowenig Variablen auskommt aber bitte seid nicht zu kritisch, aber wie gesagt auf Anfragen hin setz ich gern nochmal hin, aber halt konstruktiv sein bitte wenn Interesse besteht.)

nun rechnet man alles in prozentuale Wert von Du oder bei Du=100Prozent:
Juhu 3 Satz ;)

St:
100%=35000
1% =350
St von Du (in %) = 10000 / 350
St von Du (in %) =28,57142857142857% (und ich denke auch der windows rechner rundet)
Naja aber auch dafür gibt es wieder Möglichkeiten, auf die ich nicht näher eingehen möchte jetzt.(Durch Runden, Oder einfach wirklich die Werte rechnen lassen und nur die verluste runden, weiss ja nicht wie das im Moment läuft)

ich rechne erst und entscheide mich den einfach ...

Hp :
100%=35000
1% =350
Hp von Du (in %) = 5000 / 350
Hp von Du (in %) =14,28571428571429%

so hier Rest der Ergebnisse:

Soi = 28,57142857142857% ; Bg = 28,57142857142857%

Da wir ja wissen das Du = Bg+Hp+St+Soi
und wir 22500 Bhk von Du abziehen sollen da diese den max. Wert (von hier 14500) überschreiten, dieses soll jedoch in der gewichtung der Einheiten zu Bhk sein.
Also rechnen wir:
22500=100%
225 =1%
28,57142857142857%= 6428,571428571428 Bhk des Units DÜRFEN mit verteidigen!

So das natürlich wieder für alle als Rechnung mit einbauen und wenn ich mich wegen Übermüdung vertuhe, hätte man doch die groben Züge für ne bessere Kampfrechnung vor Augen???

GANZ WICHTIG ICH WILL HIERZU KEINE KOMMENTARE WEGEN KORREKTUR SCHREIBWEISE AN SICH; SONDERN ZUR IDEE;SOWIE MÖGLICHEN DENKFEHLERN BZW ERWEITERUNGEN DER IDEE ODER TEILE DAVON

Wichtig ist natürlich das jeder errechneter Wert der irgendwie wieder verwendet werden muss in einer Varablen abgelegt wird dsa habe ich hier nicht wegen Vereinfachung und Überblickstechnisch.

So nu will ich erstmal nicht mehr obwohl ich noch n paar gedanken hätte, doch da warte ich lieber erstmal eure Meinung ab.

Also bis den dann Christian
 
Oben