Seite 1 von 2

Verfasst: Freitag 28. November 2008, 09:10
von veers
DeJe hat geschrieben:a) Nein. Wenn später zusätzliche "Spieler"-Klassen dazu kommen wird es kompliziert welche Viecher z.B. ein Bug angreifen kann. ;)
Ich habe das jetzt mal über set() versucht. Das Ergebnis war sehr frustrierend, in Bezug auf Performance. Ich bleibe erstmal bei INT und nutze '&' und '|'. Das hat den Vorteil das ich mich damit bestens auskenne und es verdammt schnell ist. :D
Wenn du solche Lowlevel Optimierungen magst solltest du C programmieren und nicht Python ;)

Verfasst: Freitag 28. November 2008, 10:10
von DeJe
Ja, da hast du sicher recht. ;)
Aber bei dieser Applikation sei es mir vielleicht verziehen mit & und | zu arbeiten statt Sets. Als nächstes Projekt suche ich mir etwas was keine solch hohen Ansprüche an die Performance stellt. :D

Verfasst: Freitag 28. November 2008, 13:15
von veers
DeJe hat geschrieben:Ja, da hast du sicher recht. ;)
Aber bei dieser Applikation sei es mir vielleicht verziehen mit & und | zu arbeiten statt Sets. Als nächstes Projekt suche ich mir etwas was keine solch hohen Ansprüche an die Performance stellt. :D
Ich frage mich mehr warum die Bitfields und ifs an Stelle von Vererbung verwendest. Ein Bitfield an Stelle eines Sets kann ich noch als Legitim ansehen. :wink:

Verfasst: Freitag 28. November 2008, 15:33
von DeJe
Kannst du mir mal ein Beispiel zeigen wie du das genau meinst?
Sozusagen für jede Kategorie eine Stellvertreterklasse?
Wie kann man am schnellsten auf Zugehörigkeit einer Klasse prüfen? Instanz.__class__...?
Dann bekomme ich bei Vergleichen aber auch wieder Stringvergleiche rein.

Oder habe ich dich flasch verstanden?

Verfasst: Freitag 28. November 2008, 16:11
von veers
DeJe hat geschrieben:Kannst du mir mal ein Beispiel zeigen wie du das genau meinst?
Sozusagen für jede Kategorie eine Stellvertreterklasse?
Wie kann man am schnellsten auf Zugehörigkeit einer Klasse prüfen? Instanz.__class__...?
Dann bekomme ich bei Vergleichen aber auch wieder Stringvergleiche rein.

Oder habe ich dich flasch verstanden?
isinstance(obj, class) ;)

Und das wären wohl keine reinen Tagging Klassen, sondern diese können / sollen auch Logik enthalten.

Aus:

Code: Alles auswählen

if obj.type == X:
something_for_x()
elif obj.type == Y:
something_for_y()
Wird:

Code: Alles auswählen

obj.something()
Es ist sogar möglich das der Code dadurch wieder vergleichbar schnell/schneller wird. Er ist jedoch sicherlich besser wartbar, erweiterbar und testbar!

Verfasst: Freitag 28. November 2008, 17:36
von DeJe
Danke.
Ich habe das jetzt mal umgebaut. Ist schon eleganter als mit Bitfields, unbestritten. ;) Die Performance ist nur ein klein wenig schlechter, damit kann ich leben.

Verfasst: Samstag 29. November 2008, 20:57
von DeJe
Nachdem ich das ganze jetzt noch einmal umgebaut habe poste ich mal eine neue Version.
sidlegui.py
sidle.py
myants.py
@Veers, hast du dir das etwa so vorgestellt?

Re: AntMe Versuch...

Verfasst: Dienstag 3. Juli 2012, 12:46
von fonzy
Hallo DeJe,

leider funktioiniert der Link zu Deinem AntMe-Source nicht mehr. Hast Du ihn noch? Kannst du ihn vielleicht hier nochmal zur Verfügung stellen?

Danke für Deine Hilfe.
Bis dann
Fonzy

Re: AntMe Versuch...

Verfasst: Dienstag 3. Juli 2012, 13:40
von webspider
Ob das wohl nach fast vier Jahren so erstaunlich ist?

Re: AntMe Versuch...

Verfasst: Dienstag 3. Juli 2012, 14:19
von Leonidas
Naja, an sich sollte der Content zum Pastebin schon irgendwann wieder restauriert werden, vielleicht mal mitsuhiko deswegen nerven.