WPC13
-
Dann wäre mein Vorschlag: so wie in der aktuellen main.
Ich erstelle jede Runde einen jungfräulichen Bot, den ich nach der Runde zerstöre.
-
Jester schrieb:
Dann wäre mein Vorschlag: so wie in der aktuellen main.
Ich erstelle jede Runde einen jungfräulichen Bot, den ich nach der Runde zerstöre.das muss sogar so sein, damit der bot mitkriegt, wann eine neue runde beginnt. er tapt ja nicht absichtlich in die grube, aber wenn deshalb eine neue runde beginnt und er es nicht gemerkt hat, steht er ziemlich doof da.
-
Sollten die ganzen private-Sachen von Agent nicht protected sein?
-
Michael E. schrieb:
Sollten die ganzen private-Sachen von Agent nicht protected sein?
wäre zum teil praktisch. aber egal, ich hab die vom Agent einfach kopiert.
-
Die sollen wir ja nicht benutzen.
-
Also ich hätt gern zumindest lesenden Zugriff auf die Position.
-
Michael E. schrieb:
Also ich hätt gern zumindest lesenden Zugriff auf die Position.
naja, ich denke mal, das darf ich posten, weil es absolut nix mit dem verfahren zu tun hat, aber allen, die es kopieren, schreibarbeit spart.
ich hab mir nen proxy einfallen lassen, der die ergebnisse von der eigentlichen funktion holt und schnell die position aktualisiert, bevor sie dann der main weitergeleitet werden.Volkard::Action Volkard::decideNextAction(Sense sense){ Action action=think(sense); switch(action){ case TURN_LEFT: position.direction = Position::Direction((position.direction+3)%4); break; case TURN_RIGHT: position.direction = Position::Direction((position.direction+1)%4); break; case MOVE: switch(position.direction) { case Position::UP: ++position.y; break; case Position::DOWN: --position.y; break; case Position::LEFT: --position.x; break; case Position::RIGHT: ++position.x; break; } case GRAB: case SHOOT: case FINISH: break; } return action; }
-
volkard: Danke.
Jester: Schneller würds gehen, wenn du ne get-Funktion bereitstellen würdest.
-
volkard schrieb:
naja, ich denke mal, das darf ich posten
Na toll, so weit war ich auch schon. Konntest nicht schon heut früh posten!
Spass, TGGC (Wähle deine Helden)
-
Naja, die aktuelle eigene Position festzuhalten, ist ja nun nicht gar so schlimm. Mich beschäftigt momentan viel eher die Berechnung der Wahrscheinlichkeiten für Loch bzw. Monster für die Felder, was leider doch etwas komplexer ist, als ich zuerst gedacht hatte
-
Wie sieht jetzt das Abgabeformat aus? So wie es volkard vorgeschlagen hat? Dann bräuchte Agent noch einen virtuellen Destruktor. Ader einfach nur eine Klasse mit dem eigenen Namen?
-
ich könnte mir vorstellen, daß zwei oder mehr leute exakt den gleichen algo abgeben. gewinnt dann der, dessen algo schneller rechnet oder der, der früher einsendet oder noch ein anderer?
-
Nein, dann gewinnt, wer zufällig bissl bessere Höhlen bekommt.
Bye, TGGC (Keine Macht den Dummen)
-
TGGC schrieb:
Nein, dann gewinnt, wer zufällig bissl bessere Höhlen bekommt.
Bye, TGGC
Jester wird wohl dafür sorgen, dass alle die selben Höhlen bekommen.
-
TGGC schrieb:
Nein, dann gewinnt, wer zufällig bissl bessere Höhlen bekommt.
Bye, TGGC (Keine Macht den Dummen)
bin sicher, jester nimmt nicht rand(), sondern einen einen zufallsgenerator, auf den wir keinen zugriff haben und bestückt alle testenten mit den gleichen welten.
-
Volkard : TGGC
3 : 1
Zwischenstand
-
3 : 11 heisst das.
Bye, TGGC (Wähle deine Helden)
-
Ich hab mir folgendes überlegt: ich werde für alle die gleichen Testwelten nehmen. Haben am Schluß mehrere Leute gleich viele Punkte, dann lasse ich die paarweise gegeneinander antreten indem ich einen links unten, den anderen rechts oben starten lasse, gezogen wird abwechselnd. Abbrechen tue ich sobald beide finish machen oder beide tot sind.
Dann kommt halt sozusagen noch ein bißchen Glück mit ins Spiel.Fällt jemandem noch ein handlicheres und/oder faireres Kriterium ein?
Einsendezeit ist natürlich handlich und objektiv, aber ist es wirklich fair?
-
Dann sollte dem Agent aber beim initialisieren mitgeteilt werden, wo er startet. Kriterium: wie wärs mit Geschwindigkeit? Oder Codekürze?
-
ness schrieb:
Kriterium: wie wärs mit Geschwindigkeit? Oder Codekürze?
wäre absolut unpassend. vom zeitbedarf her sind die verfahren mickrig. hier würde man in der praxis auch nix optimieren. und codekürze ist der volle wahnsinn. dann ahue ich die ganzen methoden (und wenns nur eine void move() ist, die die position aktualisiert) wieder in die hauptmethode rein und das wird ein unlesbarer wust.