Zählen ist schwierig...

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Stellt euch folgende Situation vor:

Ein ziemlich nerviger gegnerischer Spieler soll am laufenden Band neue Einheiten erzeugen, damit das Szenario ein bisschen interessanter wird. :D
Damit das ganze allerdings nicht unschaffbar wird, soll der Computer nach einer bestimmten Anzahl an neuen Einheiten wieder damit aufhören.


Okay. Das klingt jetzt einmal einfach. Das hab ich mir auch gedacht, als ich dieses Problem begonnen hab.
Allerdings kamen einige Schwierigkeiten auf mich zu, da ein normaler PC bekanntlich nicht einfach so zählen kann. :P :rolleyes:

Ich habe mittlerweile eine meiner Meinung nach sehr elegante Variante gefunden, aber ich wollte auch euch mal fragen, wie ihr an dieses Problem herangehen würdet.

Die eleganteste Variante wird selbstverständlich ausgezeichnet...oder auch nicht. :rolleyes:

P.S.: 2 Dinge noch:
1) KI darf nicht benutzt werden (wär zu einfach :D )!
2) Man bedenke, dass während des Erschaffungsprozesses schon gegnerische Einheiten sterben können! (Es geht nicht einfach nur mit dem "Eigene Einheiten"- bzw. dem "Eigenschaften ansammeln"-Schalter! :eek: )
Bedingung Weniger units als " "?
Keine schlechte Idee, nur musst du Punkt 2) beachten:

Wenn während einer Schalterkette, in der immer geprüft wird, ob du weniger Einheiten hat als ..., eine Unit aber stirbt bevor die Bedingung nicht mehr gilt, werden automatisch mehr Einheiten produziert!

Ich hoffe, das war nicht zu verwirrend... :rolleyes: ;)
schalter1: an trigger
bed zeitgeber 3 neues objekt samurai
schalter2: an trigger
bed einheiten im gebiet (ganze map)20 deak schalter1
schalter3: an trigger
weniger obj. 20 akt. schalter1
schalter4: an trigger
bed obj im gebiet 21 entf am entstehungsort
Ich glaube, ihr habt alle ein kleines Problem mir zu folgen (ist auch schwierig, ich weiß :rolleyes: )...

Also, nochmal:

Aufgabenstellung:

In einer Endlosschleife sollen Einheiten (z.B.: Ritter) am laufenden Band erzeugt werden, und zwar genau so lange, bis eine bestimmte Anzahl (z.B.: 10) an diesen Einheiten erschaffen wurden.

Das große Problem:

Fallbeispiel: Eine große Schlacht findet statt. Ritter 1 wird erschaffen und zieht in den Krieg. Bevor Ritter 2 in unserer Schleife erschaffen wird, wird Ritter 1 von einer verirrten Kanonenkugel getroffen. Die gefallene Einheit muss aber trotzdem zu den erschaffenen Einheiten hinzugezählt werden! (Das funktioniert mit X-Kings und Björns Variante nicht!)

Ich hoffe, ihr habt es jetzt verstanden! ;)
hm.. zuerst hatte ich es so verstanden:
der pc erschafft/bekommt einheiten, bis er zB 10 Stück hat. dann hört er auf und macht erst weiter, wenn eine stirbt.
stirbt eine, bevor er 10 hat, dann werden trotzdem einheiten erschaffen, bis die 10 ausgeschöpft ist.

jetzt hast dus aber anders erklärt... :confused:
Darf man fragen warum du keine KI benutzen möchtest?

Wo es doch so schön einfach damit ist ... :rolleyes: ;)

Aber klar, warum einfach wenn es auch umständlich geht.
:P

Nimm doch einfach als untere Grenze z.B. 15 und als obere Grenze meinetwegen 25.
Das müsste doch klappen, oder? :P
Es ist wirklich nicht so einfach, mir zu folgen, ich weiß... :rolleyes:

----------

Also, erstmal

@Günter: Natürlich geht es mit einer KI viel einfacher, aber es ist doch auch ganz interessant, eine geeignete Schalterfolge für ein Problem zu finden...aus dem selben Grund gefallen mir auch Intros in AoK viel gesser als z.B. in AoM, weil es da zu einfach geht, ein Intro zu erstellen und somit seinen Reiz verliert. Wenn du verstehst, was ich meine... ;) :rolleyes:

@Tlaloc: Werde es gleich nochmal erklären! :D

----------

So. Jetzt nochmal alles ganz langsam zum Mitschreiben.

1. Was soll das Ganze?

Vielleicht fragt sich der Eine oder Andere, wieso ich euch frage, wie ihr ein Problem lösen würdet, obwohl ich selbst die Lösung schon gefunden habe. :rolleyes:
Ich möchte ganz einfach mehrere Lösungsmöglichkeiten für ein Problem zuammentragen und sehen, wer die interessanteste/einfachste/eleganteste/... Lösung findet. Wenn sich genügend mit dem Problem befassen, überlege ich mir vielleicht sogar etwas, um den besten Lösungsvorschlag zu belohnen. :)
Das Ganze wird soll also so etwas ähnliches wie ein Wettbewerb werden. Wenn das einmal gut funktioniert, könnten wir so etwas auch öfter machen: Einer gibt ein Ziel vor, die anderen versuchen eine Lösung zu finden. Nur so eine Idee... ;)

2. Wie lautet die Problemstellung?

+ Der Computerspieler 2 soll 10 Ritter an einer bestimmten Stelle erzeugen.
+ Sobald 10 Ritter erschaffen wurden, sollen keine weiteren Ritter mehr erzeugt werden.
+ Wenn ein Ritter nach seiner Erschaffung getötet werden, zählt er selbstverständlich zu diesen 10 dazu.

d. h.: insgesamt dürfen nicht weniger und nicht mehr als 10 Ritter durch die Schalterfolge erzeugt werden, egal was passiert!

3. Was sind die Bedingungen?

+ Es darf kein KI-Script verwendet werden. (Wär zu einfach... :rolleyes: )

----------

Wie gesagt, wenn ich genügend (funktionierende) Lösungen bekomme, werde ich mir etwas ausdenken, um den besten Vorschlag zu belohnen. :D ;)
Bedingung immer wenn einer erstellt wird, wird in einen ungenutzen Teil der Karte ne nicht im spiel normal vorkommende Unit erstellt, die nicht sterben kann.
Wenn das 10 sind werden auch nicht mehr produziert.

Mache die Produktion mit nem Timer alle 2 sek 2 Stück und bei 11 sek deaktivieren ;)
Oder platziere sie alle auf einmal :D
Ganz funktioniert deine Variante leider nicht ganz:

Wenn der Computerspieler nämlich ein Dummkopf ist und den ersten erstellten Ritter auf der Stelle stehen lässt bzw. eine andere Einheit die Stelle, an der neue Einheiten produziert werden, blockiert, wird eine "nicht im Spiel normal vorkommende Unit" erstellt, obwohl kein Ritter erstellt werden konnte! ;)
Habe vergessen zu sagen das beim erscheinen auch noch objekt zuweisen benutzt werden muss :rolleyes:
Okay...
Der 1. funktionierende Lösungsvorschlag von X-King:

----------

Schalter 0:
--ein, Trigerschleife an--

Bedingung 0:
Zeitgeber: 1

Effekt 0:
Neues Objekt: Ritter, Spieler 2, Position X

Effekt 1:
Neues Objekt: Ritter, Spieler 2, Position Y

Effekt 2:
Objekt zuweisen: Gebiet XY, Position Z

Effekt 3:
Neues Objekt: Die Jungfrau Johanna, Spieler 2, Position A

Effekt 4:
Objekt zuweisen: Gebiet A, Position B


Schalter 1:
--ein, Trigerschleife aus--

Bedingung 0:
Eigene Objekte: Die Jungfrau Johanna, Anzahl: 10, Spieler 2

Effekt 0:
Schalter deaktivieren: Schalter 0

----------

Weiter Vorschläge bitte... :D
schalter1: an
bed zeit 1 ritter pos. A akt schalter2 neues objekt palisade(wos keiner zerstören kann) pos.K objkt zuweisen pos.A zu pos. B
schalter2: aus
bed zeit 1 ritter pos. A akt schalter3 neues objekt palisade(wos keiner zerstören kann) pos.L objkt zuweisen pos.A zu pos. B
schalter3: aus
bed zeit 1 ritter pos. A akt schalter4 neues objekt palisade(wos keiner zerstören kann) pos.M objkt zuweisen pos.A zu pos. B
usw. bis gewünschte ritteranzahl
schalter11: an trigger bed objekte im gebiet K,L, ... ,X palisade zerstören palisade akt. schalter 12
schalter12: aus
akt schalter1


:D :D :D :D :D :D
ist zwar etwas kompliziert aber es funzt
Geht viel einfacher:

<pre>
Schalter0 => ein, Triggerschleife:ja

-Bedingung1
Zeitgeber1

-Effekt1
NeuesObjekt/Spieler2/Einheiten/Ritter
PositionA
-Effekt2
Objekt zuweisen/Spieler2
GebietA/PositionB


Schalter1 => ein

-Bedingung1
Zeitgeber10

-Effekt1
Schalter0 deaktivieren</pre>

So, hoffe das ich jetzt keinen Effekt oder sonst vergessen hab. :P
Nächstes mal das Problem gleich etwas klarer formulieren. ;)

EDIT: Ich hatte da übrigens auch mal so ein Problemchen. Hab stundenlang geschaltert und getüftelt aber keine Lösung gefunden. Wenns mir wieder einfällt werd ich es hier auch mal reinposten.
ps: Damals gabs noch kein Forum hier.
Immerhin schon 3 brauchbare Lösungsvorschläge...

Weitere Meldungen, bitte! ;) :D
Hab noch ne einfachere Lösung ganz ohne Schalter:
einfach dem Pc 10 Ritter hinstellen...

Nochma zum Problem: Ich finde das Problem an sich schon unsinnig. Wann braucht man so was denn? Viel sinnvoller wäre der Fall, dass der Pc 10 Einheiten hat, die aber, wenn sie sterben, ersetzt werden.
Hab noch ne einfachere Lösung ganz ohne Schalter:
einfach dem Pc 10 Ritter hinstellen...

Nochma zum Problem: Ich finde das Problem an sich schon unsinnig. Wann braucht man so was denn? Viel sinnvoller wäre der Fall, dass der Pc 10 Einheiten hat, die aber, wenn sie sterben, ersetzt werden.

Ad 1.:
Ich glaube nicht, dass ich noch extra erwähnen muss, dass diese Variante nicht die Bedingungen erfüllt... :rolleyes: :( :mad:

Ad 2.: Sinnlos nennst du so etwas? :mad: Gut, damit du auch verstehst, wo man diese Schalter einbauen könnte, hier ein Beispiel:

Spieler 1 hat einen Verbündeten, Spieler 2. Als Spieler 2 erfährt, dass Spieler 1 sich angeblich mit dem gemeinsamen Feind, Spieler 3, verbündetet hat, wechselt er seine Diplomatie und zieht gegen Spieler 1 in den Krieg. Dazu muss er nun neue Einheiten erschaffen. Damit das ganze aber nicht unfair werden kann (z.B.: in einer Variante bekommt Spieler 2 9 neue Krieger, in der nächsten 11 und bei einer anderen 12, weil immer etwas anderes passiert), soll nun eine Schalterfolge entwickelt werden, die sicherstellt, dass Spieler 2 genau 10 Einheiten erstellt.

Offensichtlich ist so eine Situation zu komplex für eines deiner Szenarien...:mad: :D (nicht ganz ernst nehmen!)

Dein Problem, also dass der CS 10 Einheiten hat, die ersetzt werden, wenn sie sterben, ist eher unbrauchbar, da ein Kampf gegen diesen Spieler dann sinnlos wäre, weil ihm ja nie die Möglichkeiten ausgehen. Natürlich kannst du auch diese Variante gebrauchen, aber ich möchte nicht, dass du auf einmal MEIN Problem als vollkommen schwachsinnig hinstellst! :mad: :( :mad:
Ich weiss zwar nicht warum du gleich ein ganzes Lösungssammelsurium brauchst, aber hier kriegst du trotzdem noch eine:

Du kannst natürlich auch 10 Schalter bauen, in denen du jeweils einen neuen Ritter erschaffst (natürlich an verschiedenen Positionen).
Der Vorteil darin läge, das die Einheiten an mehreren Stellen angreifen könnten.

Das Problem beim "Einheiten per Schalter erschaffen" ist halt immer, das die festgelegte Position auch frei sein muss, und das ist nicht immer 100%ig gewährleistet.
Ich hab z.B. vor kurzem ein Scn gespielt, in dem die Erschaffungspositionen sogar zu sehen waren.
Also hab ich einfach einen Langbogenschützen auf eine dieser Positionen gestellt.
Der hat ausgereicht um die ganze Armee plattzumachen, denn ich konnte wegen des "Objekt zuweisen"-Schalters nicht angegriffen werden.

Gut war auch das mir die Pfeile nicht ausgegangen sind. ;) :D

EDIT: Jetzt würde uns langsam aber mal deine Variante interessieren (alter Geheimniskrämer :D ..).
Du kannst Plätze freihalten, mit Trigger zuweisen und Gebäude die errichtet werden, zerstören. :D
Ja, drum hab ich ja auf das Problem hingewiesen. :D
Allerdings sieht das immer ein wenig komisch aus, wie magische Orte, die man nicht betreten darf/kann. :rolleyes: