macht jemand beim icfp04 mit?
-
SideWinder schrieb:
Ich baue einen Ameisenbär und gewinne den Contest :p
Naja mal sehen
MfG SideWinder
Natuerlich einen, der _dein_ Ameistenteam unberuehrt laesst
mfg
v R
-
Er steht halt so auf schwarze Ameisen, die roten mag er nicht
MfG SideWinder
-
Wie realisierst du die einzelenen Zellen?
Ich hab mir da sowas in der Art vorgestellt:
Cell ist eine abstrakte Basisklasse. Eine Zelle beinhaltet ein Objekt z. B. Ant
oder es handelt sich einfach nur um eine 'EmptyCell' oder sowas. Sie stellt
eine Memberfunktion getCellObject() o. ae. bereit, welche reimplementiert werden
muss.Ich will z. B. spaeter sowas machen koennen wie:
Cell.getCellObject().dosomething();
Mein Problem: wenn sich auf einer Zelle eine Ameise befindet, muss getCellObject
z. B. so aussehen:virtual Ant *getCellObject() { ... }
entsprechend anders muss es aussehen, wenn sich auf der Zelle z. B. Futter
befindet. Das waere aber bereits eine Spezialisierung. Wenn man Ant so
deklarieren wuerde:class Ant : public Cell
dann waere das kein Problem, nur ist das natuerlich schwachsinn, denn Ant ist
keine Zelle!Wie muss ich das angehen? Hat die Idee ueberhaupt etwas, oder ist sie einfach
nur, schlicht gesagt, falsch und sinnlos?Meine Gedanken sind einwenig ungeordnet und im Moment tue ich mich schwer sie
zu ordnen, bin fuer kleine Denkanstosse dankbar.mfg
v R
-
Dauert viel zulange :D, hier gehts nicht um einen OOP-Wettbewerb. Der einzige der mit der Karte umzugehen hat ist das Testprogramm, und da mach ichs mir gerade sehr einfach:
// cell specifiers typedef unsigned short int cell; const cell cellclear = 0; const cell cellrocky = 11; const cell cellredanthill = 12; const cell cellblackanthill = 13; ... // ich mach nur das was auch später abgefragt wird (100*100 also) cell world [100][100];
MfG SideWinder
-
Muss jetzt noch schnell einen Lader für die "Gehirne" erstellen der mir die Befehle von Strings in instructions wandelt.
Dann führt der einfach 10000 Mal die Instruction aus - für jede Instruction eine tolle Funktion die genau wie im PDF aussieht fertig.
Dann kann man daran gehen das Gehirn der kleinen Wuzler zu bauen, das hab ich eigentlich erstmal auf Papier vor und teste dann immer VersionALT gegen VersionNEU im Tester
MfG SideWinder
-
Und ich mach mir hier Gedanken um ein schoenes Design...:D
mfg
v R
-
Mich freuts jetzt sowieso nicht da einen Lader zu bauen, den bau ich morgen. Und dann lass ich einfach zum Spaß Ameisen-Gehirne gegeneinander antreten, für den Contest muss man imho 72 Stunden lang Gehirn bauen - am besten in der Gruppe. Der dümmste der Gruppe baut einstweilen das Testprogramm.
MfG SideWinder
-
SideWinder schrieb:
Dauert viel zulange :D, hier gehts nicht um einen OOP-Wettbewerb.
sehr richtig. es geht um funktionales proggen.
die beschreibung enthält fertigen code, den man bloß nach c++-syntax übersetzen muss. wer am verfahren was ändert, verliert zu viel zeit.und das testprogramm muss so schnell wie möglich fertig sein, würde ich sagen, damit man mehr ameisencode ausprobieren kann und auch ameisisch zu denken lernen kann.
mein testprog sollte heute nacht noch fertig werden, das freut mich ein wenig. worauf ich gar keine lust habe, ist einen weltenerzeuger zu bauen.
-
Meines wäre fertig geworden mich freuts aber nicht mehr, muss aber im Prinzip nur noch die Befehle die in der Datei stehen in interne Befehle umwandeln. und eine schleife mit 10000 aufrufen der jeweiligen Funktion machen.
Aber mein Ziel ist nicht gewinnen, hat Zeit. Wenn volkard morgen sein Testprogramm hat kommt der viel wichtigere Teil seine Ameisen müssen meine schlagen
Wenn du willst bau ich dir gegnerische Ameisen.
MfG SideWinder
-
Hmmm...also ein bisschen was hab ich auch schon, mal sehn ob ich heute Nacht das
noch zum laufen bekomme...mfg
v R
-
SideWinder schrieb:
Wenn volkard morgen sein Testprogramm hat kommt der viel wichtigere Teil seine Ameisen müssen meine schlagen
mein programm kann die ausgabe dumps.all jetzt fehlerfrei erzeugen.
und auf einmal fällt mir ein, daß ich gar keinen überzeugenden plan habe, wie es weitergeht. naja, beim schlafen fällt mir bestimmt was ein.Wenn du willst bau ich dir gegnerische Ameisen.
wenigstens einen guten gegner kann sicherlich jeder gut gebrauchen. ich natürlich auch.
-
Moin,
wie habt ihr das mit condition.marker geloest? In der Funktion 'cell_matches'
kommt das ja dann vor, nur wo nehmen die das i her?Ich hab hier irgendwie eine kleine Denkblockade.
mfg
v R
-
virtuell Realisticer schrieb:
wie habt ihr das mit condition.marker geloest? In der Funktion 'cell_matches'
kommt das ja dann vor, nur wo nehmen die das i her?hab sie aufgelüst in 6 spezielle MERKER.
case ROCK: return false; case MARKER0: return checkMarkerAt(p,c,0); case MARKER1: return checkMarkerAt(p,c,1); case MARKER2: return checkMarkerAt(p,c,2); ...
-
Ah...auf sowas bin ich gar nicht gekommen. Und dabei hatte ich schon einen Typ
Marker, den ich, wie ich jetzt sehe, hier unterbringen sollte.Danke fuer den Denkanstoss
mfg
v R
-
nur noch gut 6 stunden und ich habe noch keinen sieg gegen die zufallsameise von der aufgabenstellung.
macht ihr noch mit? hab so wenig von ech gehört. oder gab's einfach keine fragen?
-
Also ich hab vor, meine Ameisen abzuschicken. Besser als Random-Ameisen sind sie jedenfalls schon. (meistens
)
Mit meinem Präprozessor gehts jetzt auch richtig vorwärts. Ich lade meine Dateien dann nach dem Einsendeschluss hoch.
-
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