macht jemand beim icfp04 mit?



  • Ich werde nichts einschicken, werde aber das Programm zu Ende schreiben und dann
    noch ne Killerameise erstellen, die dann mal schnell die Ameise des Gewinners
    plaettet ;).

    Mein Hauptproblem: Mein Notebook ist in Reparatur und habe keine anderen
    Compiler zur Auswahl gehabt. Und so war es nur Murphys Law, welcher mich
    einholte und dazu gefuehrt hat, dass ich die entsprechenden Installations-CD's
    nicht finden konnte. Ich habe daher auf dem Rechner meiner Schwester das MinGW
    Developer Studio und den Dev-Cpp installiert. Die Aufgabe habe ich mit dem MinGW
    Developer Studio gemacht und den Dev-Cpp lass ich nebenher laufen um mal schnell
    ein paar Dinge auszuprobieren.

    Nun wollt ich gestern was auszuprobieren und das Programm hat immer mehr
    Speicher gefressen. Nun konnt ich den Fehler aber nicht direkt finden und wollte
    debuggen, allerdings konnt ich unterm Dev-Cpp gar nicht debuggen (trotz das ich
    debugginfos mit einkompiliert hatte, ging es nicht, ich konnte einfach nicht
    debuggen). Dann habe ich also im MinGW-DS doch schnell das Projekt beendet und
    das Testprojekt schnell erstellt. Debuggen an sich kein Problem, aber beim
    'trace in' bei nem CTor aufruf kam ich dann ploetzlich beim DTor der
    vector-Klasse raus (?).

    Hab den Code jetzt hier auf der Arbeit getestet und den Fehler gefunden
    (trotzdem verhaelt sich das Programm an der Stelle merkwuerdig). Das Verhalten
    vom Dev-Cpp und dem MinGW-DS kann ich dennoch nicht aufgrund des Fehlers
    nachvollziehen, denn so schlimm war der Fehler nicht.

    Ich habe Sonntag durch dieses Problem enorm viel Zeit verloren und die fehlt
    mir jetzt bestimmt (mal davon abgesehen, dass ich hier auf der Arbeit nicht
    daran weiterarbeiten kann).

    Aber dennoch wuerde mich mal euer Code interessieren, wenn ihr fertig seit :).

    mfg
    v R



  • SeriousSam schrieb:

    Mit meinem Präprozessor gehts jetzt auch richtig vorwärts.

    jo, nen präpro hab ich auch gemacht. der kann bisher zwar nur einen befehl, den ich im ameisencode auch nur einmal verwende...



  • virtuell Realisticer schrieb:

    also im MinGW-DS doch schnell das Projekt beendet und das Testprojekt schnell erstellt. Debuggen an sich kein Problem, aber beim 'trace in' bei nem CTor aufruf kam ich dann ploetzlich beim DTor der
    vector-Klasse raus (?).

    jo, wirre trace-anzeigen haben mich vor ein paar wochen beim mingw-studio auch enorm genervt. also hab ich meinen stil geändert und muß jetzt kaum noch debuggen.



  • volkard schrieb:

    virtuell Realisticer schrieb:

    also im MinGW-DS doch schnell das Projekt beendet und das Testprojekt schnell erstellt. Debuggen an sich kein Problem, aber beim 'trace in' bei nem CTor aufruf kam ich dann ploetzlich beim DTor der
    vector-Klasse raus (?).

    jo, wirre trace-anzeigen haben mich vor ein paar wochen beim mingw-studio auch enorm genervt. also hab ich meinen stil geändert und muß jetzt kaum noch debuggen.

    Das sollte ich wohl auch machen 🙂

    mfg
    v R



  • Als meine ersten Ameisten absolut keine Chance gegen den vordefinierten Code hatten und auch nach einigen Umbauten nicht viel besser wurden hab ichs dann hingeschmissen 😞

    Wann darf man die Killerameisen des Gewinners downloaden? Wär gespannt wie die das gemacht haben 🙂

    MfG SideWinder



  • Ich nehme mal an, die Gewinner haben keine Zeile Ameisencode von Hand geschrieben. Letztes Jahr verwendeten die Gewinner soweit ich weiss ja genetische Algorithmen. Wird aber interessant sein, die Ameisen auf meinem grafischen Simulator zu betrachten.



  • Nachdem die Tore geschlossen sind...

    Hier ist was ich eingeschickt habe: http://www.acid-code.ch/~samuel/icfp04.zip

    Und wehe jemand kritisiert meinen Programmierstil. 🙄 Dafür, dass ich fast normal geschlafen habe und erst am Samstag morgen begonnen habe ist das wohl nicht so übel.

    Habt Spass 🙂



  • SeriousSam schrieb:

    Ich nehme mal an, die Gewinner haben keine Zeile Ameisencode von Hand geschrieben. Letztes Jahr verwendeten die Gewinner soweit ich weiss ja genetische Algorithmen. Wird aber interessant sein, die Ameisen auf meinem grafischen Simulator zu betrachten.

    glaub ich nicht. hab fast nen tag lang mit genetik gespielt, das bring hier aber nix, würde ich sagen.
    handgeschrieben ist bei mir die logik mit 133 zeilen, eingespleißt sind ein paar makros 2500 zeilen erzeugen.

    aber ich bin nicht fertig geworden. irgendwie gibts bei jedem zweiten start vor meinem vorratslager nen stau.



  • Trotzdem glaube ich nicht, dass der Gewinner einen handgeschriebenen Ameisencode entwickelt hat.

    MfG SideWinder



  • Ich hab das ganze nur mal kurz überflogen, wie funktionieren die Ameisen denn genau?
    Wenn ich es richtig verstanden habe, dann schreibt jeder Teilnehmer seine Ameisen in nem speziellen Code für ne Finishing State Machine, oder?



  • SirLant schrieb:

    Ich hab das ganze nur mal kurz überflogen, wie funktionieren die Ameisen denn genau?
    Wenn ich es richtig verstanden habe, dann schreibt jeder Teilnehmer seine Ameisen in nem speziellen Code für ne Finishing State Machine, oder?

    Das Testprorgamm lädt die zwei Ameisengehirne in die Map und führt für jede Ameise hintereinander, 100000 Runden lang das Gehirn aus. Das Gehirn ist in einer Scriptsprache geschrieben die jeweils 1 Befehl speichert. Dabei kann man Bedinungen prüfen und je nach Bedingung auf andere Befehle verzweigen.

    MfG SideWinder



  • SeriousSam schrieb:

    Nachdem die Tore geschlossen sind...

    Hier ist was ich eingeschickt habe: http://www.acid-code.ch/~samuel/icfp04.zip

    Und wehe jemand kritisiert meinen Programmierstil. 🙄 Dafür, dass ich fast normal geschlafen habe und erst am Samstag morgen begonnen habe ist das wohl nicht so übel.

    Habt Spass 🙂

    Hmmm...soviel Code hab ich gar nicht. Hab auch keinen richtigen Preprozessor
    sondern hab mir nur ne Klasse 'Instruction' gemacht, welche mir die
    entsprechenden Informationen bereitstellt, allerdings hat die gar nicht soviel
    Code. Ich komme im Moment nur auf 18kbyte Code, da fehlen zwar noch en paar
    kleine Funktionen, welche ich noch fertigschreiben muss, aber soviel wird das
    nicht mehr.

    Da stell ich mir dann doch jetzt schon im Voraus die Frage, ob mein Code richtig
    sein kann.

    Mir ist auch gar nicht eingefallen, den Code nur einfach so runterzuschreiben,
    ich hab mir gleich direkt Gedanken ueber Objekte gemacht (hab da World, Cell,
    Ant und Instruction), wahrscheinlich waere ich sonst doch noch schneller zu mehr
    gekommen, aber das hatte SideWinder ja schon weiter o. gesagt gehabt.

    Naja, mein Notebook ist heut wieder angekommen und dann werd ich mich mal gleich
    ranmachen, den Code fertig zu schreiben. Falls interesse besteht, werd ich den
    dann auch mal zum Download zur Verfuegung stellen.

    mfg
    v R



  • Schade, zu spät gelesen. Sonst hätte ich natürlich mitgemacht und gewonnen. Nächstes Jahr bitte eher Vorstellen und mit Aussagekräfitgerem Titel !!!!!



  • Physikstudent schrieb:

    Schade, zu spät gelesen. Sonst hätte ich natürlich mitgemacht und gewonnen. Nächstes Jahr bitte eher Vorstellen und mit Aussagekräfitgerem Titel !!!!!

    Bitte deine Ameisenversion in 3 Tagen hier abliefern - die müssen dann gegen den icfp04-Gewinner ran 🙂

    MfG SideWinder



  • Nee, da fehlt der Anzreiz.



  • Physikstudent schrieb:

    Nee, da fehlt der Anzreiz.

    Ich dachte schon du hättest einen dringenden Termin 🤡 😉

    MfG SideWinder



  • ich sag euch mal meinen plan:
    die marker verwende ich wie folgt:
    m4: feld ist bewertet
    m0-m3: bewertung (interpretiert als binärzahl zwischen 0 und 15)
    m5: ameisenstraße

    trifft ne ameise auf ein unbewertetes feld, bewertet es diese anhand eines sichbaren nachbarn mit this->wert = nachbar->wert+1

    dadurch kann jede amaeise im falle eines futterfundes optimal schnell heimlaufen, sie muß ja nur stets auf ein niederwertigeres als das aktuelle feld tappen. sie wird sicher bei feld 0 ankommen.

    ups, alle werte sind modulo 16, aber egal. die funtion < ist halt entsprechend zu bauen.

    feld 0 ist in ner "festung", die so aussieht:

    + +
    + 0
     + +
    

    in feld 0 kann nie ne fremde ameise gehen, denn da stirbt sie sofort.
    meine ameisen gehen einfach rein, worauf der stopfen (s)

    + +
    s 0
     + +
    

    sofort wegrennt. die reingegangene ameise legt auf feld 0 die beute ab und springt zum programmcode von s (sie wird der neue stopfen).

    ne ameise, die futter fand, legt auf ihrem rückweg immer Marker 0 5 ab, eine ameisenstraße. findet ne gelangweilte ameise ne straße, geht sie die straße hinauf (entsprechend der bewertungen) und am be futterfund geht sie heim (legt neue strasse dazu). ist aber am ende gar nix, löscht sie den straßenmarker am endfeld. so verschwinden straßen zu inzwischen leeren plätzen allmächlich.

    da klappt sogar alles soweit fast. allein mein problem ist, daß sich manchmal ne ameise, die zu feld 0 will, um futter abzuliefern, auf feld s landet und dann den ausgang der festung blockiert.



  • Aber sollte das nicht eigentlich _nicht_ passieren, denn du hast doch dieses Feld
    belegt solange keine Ameise auf Feld 0 ist?

    Merkwuerdiges Verhalten. Bin leider immernoch nicht soweit, meine Simulation fertig
    zu uebersetzen. Morgen hab ich die ersten beiden Schulstunden frei, da werd ich
    dann auch nochwas daran arbeiten.

    Wer weiss, vielleicht werden in diesen beiden Stunden meine Killerameisen geboren 😃

    mfg
    v R



  • Noch ne Frage zu clearMarkerAt():

    Was genau wird hier gemacht? Soll hier current_marker-1 gesetzt werden, oder
    soll current_marker auf 'no_marker' gesetzt werden?

    [Nachtrag]
    Lesen sollte gelernt sein und zusaetlich, sollte man selbiges auch mal konzentriert
    tun, dann haette ich die frage nicht gestellt 🙂
    [/Nachtrag]

    mfg
    v R



  • Jetzt muss ich doch nochmal was fragen, koennen Marker von Red und Black zugleich
    gesetzt sein?

    mfg
    v R


Anmelden zum Antworten