Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> Sonstiges
Autor
Nachricht
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248

Antme! - Künstliche Intelligenz programmieren
Verfasst am: 05.02.2008, 16:26

Will euch hier mal etwas vorstellen, dass ich in der downtime von vb-x entdeckt habe.

Nennt sich Antme! und dreht sich im Grunde darum, ein Ameisenvolk so zu programmieren, dass es auf verschiedene Ereignisse reagiert.

Es gibt Objekte wie Äpfel und Zucker zum einsammeln und feindliche Käfer die man bekämpfen kann.
Beides führt zu Punkten, wobei man natürlich soviel wie möglich erreichen sollte.


Hier mal paar Links dazu. Videotuts findet man dort auch.
http://antme.net/
http://www.developia.de/forum/forum-46.html



Das ganze gibt es für C#, VB.Net und bald auch für C++.
Ich hab mich für C# entschieden und bin auch ziemlich begeistert.
Ist VB6 bzw. Delphi sehr ähnlich und stellt für mich kein Großes Problem dar damit zu arbeiten.

Mein Ameisenvolk, die "Starship TroopAnts" unter der Führung von "General James T. Morgan" kommt nun schon auf stolze 10.-11.000 Punkte.
Und das ohne Schnickschnak wie "Globales Gedächtnis" oder ähnlichem, was echte Ameisen ja eigentlich nicht haben.
Also rein über Duftmarken usw.

Würde mich freuen wenn ich es euch schmackhaft machen konnte.
Evt. machen wir vielleicht ne Challenge daraus.

Für Fragen steh ich euch auch zur Verfügung, wobei ich selbst noch nicht lange damit zu tun habe.

mfg, ZiG
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
seraph1n_
Coder
Coder

Anmeldedatum: 06.01.2008
Beiträge: 93
Wohnort: aaaaaaaaa Level: 1337


Verfasst am: 05.02.2008, 17:35

naja, sieht schon coool aus... aber bei mir reichts dann nicht an verständnis des quellcodes. ^^
_________________

the_gam3r hat Folgendes geschrieben:
scheisse stimmt, muss noch besser vb lernen^^

tr4st hat Folgendes geschrieben:
Du solltest überhaupt mal VB lernen.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 05.02.2008, 17:42

Deswegen gibt es ja die Videotuts Wink
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
seraph1n_
Coder
Coder

Anmeldedatum: 06.01.2008
Beiträge: 93
Wohnort: aaaaaaaaa Level: 1337


Verfasst am: 05.02.2008, 17:50

sei mal sicher, dass ich mich auf einer seite umgucke, wenn mich etwas interessiert, aber danke. Wink
_________________

the_gam3r hat Folgendes geschrieben:
scheisse stimmt, muss noch besser vb lernen^^

tr4st hat Folgendes geschrieben:
Du solltest überhaupt mal VB lernen.
 
Bahamut_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 12.12.2006
Beiträge: 250


Verfasst am: 06.02.2008, 10:15

Hab schonmal davon gelesen, glaub sogar in der Gamestar war ein kleiner Bericht dazu.

Klingt aufjedenfall interessant, ich werd die VB.Net-Variante mal ausprobieren wenn ich endlich mal Zeit zum Programmieren find ^^
_________________
VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/
 
shadow71721_
Newbie
Newbie

Anmeldedatum: 05.02.2008
Beiträge: 10


Verfasst am: 06.02.2008, 10:54

nicht schlecht werds mir mal bei gelegenheit zu gemüte führen.
_________________
 
Jolo_
Coder
Coder



Anmeldedatum: 20.03.2007
Beiträge: 210


Verfasst am: 06.02.2008, 11:18

Sieht sehr nice aus Wink
Ich denke ich werd das mal ausprobiern ^^

MfG Jolo
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 06.02.2008, 13:08

hey das sieht sehr interresant aus, werde ich auch mal ausprobieren.
schade nur das man C#,ober VB.net benuzen muss.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 06.02.2008, 13:57

Find ich eigentlich nicht so schade. Man hat durch die Videotuts einen recht leichten Einstieg in eine andere Sprache und C# ist wirklich ziemlich einfach.
VB.Net sicher genauso.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 06.02.2008, 18:47

mhmm ich hätte da mal ne frage, also wie misst man den dann welches volk am besten ist? in dem tutorial sagt er es währen 100 ameisen, aber bei mir sterben mehr als 100(das spiel hört nie auf) und bei ihm bekommt er auch punkte abgezogen wenn ameisen sterben, ist bei mir nicht so.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 06.02.2008, 19:07

Die Simulation hört normal nach 4500 Runden auf.
Das sind glaube ich 5 Minuten.

Man kann das ganze aber auch im Schnelldurchlauf machen.
Einfach bei "Konstante Bildwiederholrate" den Haken rausmachen.


Und 100 Ameisen aufeinmal in der Simulation ist das Maximum.
Sobald eine Stirbt wird eine neue erstellt.
Nur kostet das natürlich Zeit.
Ich glaube jede Runde kann eine erstellt werden.

Wenn also viele sterben wird es auch lange dauern bis wieder alle erstellt sind.

Und Punkte werden einem glaube ich nur abgezogen falls die Ameisen durch Erschöpfung sterben. Also bei Käferangriffen nicht.
Ist aber glaube ich erst seit der neuen Version so.

Und lasst euch nicht von sehr hohen Punkten verwirren.
Es gab mal einen Bug mit dem man sehr viele Punkte machen konnte.
Das wurde aber schon gefixt.
Außerdem gibt es noch so Sachen wie Globales Gedächtnis, was aber schon ein großer Eingriff ins Programm ist und nicht mehr viel mit echten Ameisen zu tun hat.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 07.02.2008, 12:30

so also ich hab noch ein paar mehr probleme:
-wie kann ich variablen erzeugen deren wert länger als eine runde gespeichert wird(ich benuze C#), z.b. die entfernung vom aktuellen zuckerberg zum bau, den wenn bei mir ein zuckerberg leer ist rennen die ameisen einfach weiter bis sie vor erschöpfung sterben.
-wenn ich 2 verschiedene typen habe, z.b. sammler und kämpfer, wei bekomm ich das dann hin das unterschiedlicher code ausgeführt wird, also wenn die sammler ameise zucker sieht soll sie ihn hohlen, wenn die kämpferameise zucker sieht soll sie ihn nur markieren
-wie bekomme ich raus was meine ameise gerade trägt, den meine apfel-träger denken sie haben zucker und schicken ameisen zum zuckerberg der gar nicht existiert.
-was macht meine ameise wieder fit, bevor sie vor erschöpfung stirbt?

meine ameisen bekommen so zwischen 6000-7000 punkte
 
Teyhouse_
Poster
Poster



Anmeldedatum: 11.02.2007
Beiträge: 100


Verfasst am: 07.02.2008, 13:09

Kleine Frage: Ist es in Vb.net Möglich das Pfadpfinding zu beeinflussen?

Mfg.
Teyhouse
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 07.02.2008, 13:17

1.
Variablen kannst du hier deklarieren:
Code:

      public static void Initialisiere() {
      }


Es gibt für die Ameisen auch einen Event "Wartet".
Also falls kein Zucker mehr da ist, einfach zum Bau zurückschicken oder in eine andere Richtung laufen lassen etc.


2.
Typ abfragen kannst du so:
Code:

if (Typ == "sammler")
{

}



3.
Weiß nicht ob man direkt abfragen kann was genau getragen wird.
Evt. kann man es übers Gewicht machen.
Code:

AktuelleLast


Aber ich denke das kannst du einfach lösen über die Funktion:
Code:

BrauchtnochTräger

Die gibts ja nur fürs Obst. Falls also keine Träger gebraucht werden, dann halt keine Signale aussenden.

4.
Ich glaube nur in den Bau zurückkehren.

Edit//
@Teyhouse

Man kann so gut wie alles ändern.
Du mußt dir nur den Source beschaffen und dich auskennen.
Im Forum wird auch recht viel besprochen.
Globales Gedächtnis, GPS usw.
Also einfach mal umsehen.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 07.02.2008, 13:39

Code:

      public static void Initialisiere() {
      int EntfernungZucker;
      }

wenn ich dann z.b. bei sieht zucker das so mache:
Code:
public override void Sieht(Zucker zucker) {

            SprüheMarkierung(Koordinate.BestimmeRichtung(this, zucker), Koordinate.BestimmeEntfernung(this, zucker));


            if (AktuelleLast == 0)
            {
                GeheZuBau();
                EntfernungZucker = Koordinate.BestimmeEntfernung(Ziel, zucker);
                GeheZuZiel(zucker);
            }

dann kommt bei mir das das "EntfernungZucker" nicht im akktuellen kontext vorhanden sei.
mach ich da was falsch?

und bei
Code:
GeheZuBau();
                EntfernungZucker = Koordinate.BestimmeEntfernung(Ziel, zucker);
                GeheZuZiel(zucker);

gibt es den den bau nicht als objekt?
mfg
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 07.02.2008, 13:53

Schreib mal die Deklarierung direkt unter:
Code:

public class MeineAmeise : Ameise {


Dann müßten die eigentlich global deklariert sein. Jedenfalls mach ich es so bei einem anderen Prog.

Im Code von Antme! steht bei "Initialisiere" halt das man da seine Variablen deklarieren kann, aber probiert hab ichs nicht.

Ähm, bei deiner zweiten Frage hast du dich wohl vertan.
Du schickst die Ameise eigentlich bevor sie zum Zucker gegangen ist schonwieder zum Bau zurück.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 07.02.2008, 14:50

erstmal danke für die ganzen antworten.
da ich mit Koordinate.BestimmeEntfernung die entfernung vom bau zum zucker
bestimmen mag und den bau allerdings nicht als objekt finde, schicke ich die ameise zurück zum bau, den dann ist ja in Ziel der bau, dann messe ich die entfernung, und schicke die ameise zum zucker, ohne das eine runde vergeht, daher geht die ameise keinen schritt richtung bau.
das funktioniert zwar schon, aber es wäre besser wenn ich den bau als objekt hätte.
mfg
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 07.02.2008, 14:59

Gibt im Forum dazu auch Themen.
Also Abstand zwischen Zucker und Bau bestimmen usw.

http://www.developia.de/forum/forum-46.html
http://www.developia.de/forum/frage124015.html
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 24.02.2008, 01:24


So ich habe das ganze dann nun auch einmal angeschnitten Smile

Ich arbeite in dem Projekt in VB.NET für denn Fall das jemand Fragen haben sollte bzgl. VB.NET .
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> Sonstiges

Tags: intelligenz, programmieren, antme, globales

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wie bringe ich mein Programm dazu, auf Return zu reagieren? 581 24.12.2009, 14:42
Keine neuen Beiträge [Umfrage] Multi-tool [By Dylan] - Mit 8 Funktionen schaut rein ! ! ! 698 30.05.2009, 15:11
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 796 20.05.2002, 00:28
Keine neuen Beiträge Eine kleine Frage an euch.. 906 30.09.2007, 08:57
Keine neuen Beiträge IP Stealer example 4 RuaP and vb-x.org 1093 30.04.2007, 16:20
 



[ Time: 0.6183s ][ Queries: 155 (0.0292s) ][ GZIP on - Debug on ]