WPC13
-
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.
-
Jester schrieb:
Ich hab mir folgendes überlegt: ich werde für alle die gleichen Testwelten nehmen.
das finde ich sehr gut.
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.
hmm.
hab aber koordinaten hardcoded. allein schon im ctor. aber auch später. zum beispiel wo ich schau, ob ich wieder links unen angekommen bin.den battle-mode kannste nur machen, daß beide bots ihr lokales koordinatensystem haben. also für mich ist [1,1] links unten und für den fein ist [1,1] rechts oben. aber es ist die selbe welt.
wer hat die ehre, unten zu spielen und wer oben? würfeln? nee, zwei spiele, einmal sorum und einmal andersrum.
sehen sich die bots oder behindern sie sich? kann nicht sein. die programme achten nicht auf bump, wenn sie im code so angelegt sind, daß sie von allein nicht aus dem spielfeld laufen.
also laufen einfach nur beide bots beide welten ab (die welt und ihre gedrehte welt). es wird sicher zum gleichstand kommen.
Dann kommt halt sozusagen noch ein bißchen Glück mit ins Spiel.
nur, wenn du würfelst, wer unten und wer oben spielt. dann mach aber keine solche verschleierung, sondern wirf ne münze, wer gewonnen hat.
Fällt jemandem noch ein handlicheres und/oder faireres Kriterium ein?
münze werfen.
Einsendezeit ist natürlich handlich und objektiv, aber ist es wirklich fair?
besser als speed oder size.
fair insofern nicht, als daß manche erst am mittwoch anfangen können und andere immer am wochenende zeit für sowas haben.wirklich fair ist nur münze werfen.
ich sehe auch eine möglichkeit, einen nach aufgabenstellung gebauten bot so zu zweckentfremden, daß man zwei gleiche so miteinander vergleichen kann, daß ungleich rauskommt.
-
Jester schrieb:
Ich hab mir folgendes überlegt: ich werde für alle die gleichen Testwelten nehmen.
Die müssen dann aber auch die jetzige Verteilung der Welten repräsentieren. Also nicht einfach 50 erzeugen und jede 20x spielen.
Jester schrieb:
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.
Wenn zwei Algorithmen genau die gleichen Züge machen, dann kann nicht einer besser als der andere sein. Hier passiert genau das, was ich gesagt habe: wer die bissl bessere Welt (von seinem Start aus) hat, gewinnt. 3 : 12
Das man den Start nicht kennt, wurde schon gesagt. Ausserdem veränderst du auch noch die Welt (selbst wenn du volkards raltive Koordinatenidee nimmst) weil in 4,4 plötzlich kein Loch/Gold/Monster mehr ist.
Jester schrieb:
Abbrechen tue ich sobald beide finish machen oder beide tot sind.
Dann kommt halt sozusagen noch ein bißchen Glück mit ins Spiel.Wie ich ja schon sagte. 3 : 13
Wenn die KIs das Gleiche machen, sollen sie doch verdammt nochmal den gleichen Platz bekommen.
Bye, TGGC (Wähle deine Helden)
-
Ich würde auch nicht versuchen, auf jeden Fall einen Unterschied herzustellen. Ich würde es so machen.
1. Alle Agenten kriegen dieselben 100 Mio Welten, die gleichverteilt aus allen möglichen gelost wurden, vorgesetzt. Aus der Punktzahl wird eine Tabelle erzeugt.
2. Agenten, die die gleiche Punktzahl haben, bekommen neue 10.000 Welten, die im Sudden-Death modus gespielt werden. Sobald nach einer Welt ein Agent mehr Punkte hat ist er Sieger. Dadurch werden die Agenten differenziert, die nicht identisch arbeiten, aber zufällig die gleiche Punktzahl in 1. hatten.
3. Ist bisher kein Unterschied zutage getreten, so teilen sich beide oder mehrere Agenten den gleichen Platz.
-
Also, da die Aufgabenstellung die Startposition vorgegeben hat, werden wohl alle bisherigen Teilnehmer auch mit dieser Information gearbeitet haben, denn aus dieser Info ergibt sich ja auch, dass der Agent niemals gegen eine Wand stoßen wird (außer bei einem Programmierfehler). Wenn die Startposition plötzlich unbekannt wäre, müsste sich der Bot durch die Welt 'tasten', was die Aufgabe doch in einem gewissen Grad verändert.
Ich würde auch sagen, wenn es nach dem regulären Testfahren wirklich einen Gleichstand gibt, dann haben die betroffenen Lösungen eben den gleichen Rang inne.
-
ich bau in meinen bot einfach was nutzloses ein, dan hat er nicht die gleiche punktzahl wie ein anderer.
-
kwaart schrieb:
Also, da die Aufgabenstellung die Startposition vorgegeben hat, werden wohl alle bisherigen Teilnehmer auch mit dieser Information gearbeitet haben, denn aus dieser Info ergibt sich ja auch, dass der Agent niemals gegen eine Wand stoßen wird (außer bei einem Programmierfehler). Wenn die Startposition plötzlich unbekannt wäre, müsste sich der Bot durch die Welt 'tasten', was die Aufgabe doch in einem gewissen Grad verändert.
Nein. Du kannst mit den Infos die Dir zur Verfügung stehen nicht feststellen in welche Ecke des Raums ich dich stelle, da alle Operationen relativ zur aktuellen Botausrichtung sind.
-
volkard: einer von beiden entdeckt das Gold zuerst. Wenn es mal aufgehoben ist kann es der andere nicht mehr finden.
Wir können es aber gerne so machen wie ponto vorgeschlagen hat.
-
Jester: In der Aufgabenstellung steht, dass der Agent immer im Feld [1,1] mit Ausrichtung nach rechts startet. Aus dieser Information kann ich ziemlich sicher sagen, dass ich drei Felder nach rechts und drei nach oben habe, bevor ich vor eine Wand stoße. Wenn du den Agent also plötzlich auf ein anderes Feld setzt, dann ist das eine andere Ausgangsstellung als in der Aufgabe beschrieben. Natürlich kannst du, wenn du ihn in eine andere Ecke sitzt, die Welt invertieren, so dass der Bot das nicht merkt, aber...