Exemplo n.º 1
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     // Sollte die Ameise nicht schon Obst im Auge haben oder auf dem Weg zum
     // Bau sein soll sie, wenn die angeforderte Menge Ameisen die Ameisenmenge
     // der gerade in Sichtweite befindlichen Ameisen übersteigt, zum
     // Markierungsmittelpunkt gehen um dort hoffentlich den Apfel zu sehen.
     if (!(Ziel is Obst) &&
         !(Ziel is Bau) &&
         AnzahlAmeisenInSichtweite < markierung.Information)
     {
         GeheZuZiel(markierung);
         // Sollte die Entfernung mehr als 50 schritte zum Mittelpunkt betragen,
         // soll eine Folgemarkierung gesprüht werden um denn Effektradius zu
         // erhöhen.
         if (Koordinate.BestimmeEntfernung(this, markierung) > 50)
         {
             SprüheMarkierung(
                 Koordinate.BestimmeRichtung(this, markierung),
                 Koordinate.BestimmeEntfernung(this, markierung));
         }
     }
     else
     {
         // In allen anderen Fällen soll sie kurz stehen bleiben um zu
         // verhindern, dass die Ameise dem Apfel ewig hinterher läuft.
         BleibStehen();
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     //if (Kaste == "Verteidiger" && Ziel == null)
     //{
     //    GeheZuZielOptimized(markierung);
     //}
 }
Exemplo n.º 3
0
 public override void RiechtFreund(Markierung markierung)
 {
     if (markierung.Information < 1000 && markierung.Information > 0)
     {
         if (target == null)
         {
             target = markierung;
             Sprint(markierung);
         }
         else
         {
             try
             {
                 if (markierung.Information > ((Markierung)target).Information)
                 {
                     target = markierung;
                     Sprint(markierung);
                 }
             }
             catch
             {
                 if (getD(a, markierung) < getD(a, target))
                 {
                     target = markierung;
                     Sprint(markierung);
                 }
             }
         }
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
        /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
        /// gerochen.
        /// </summary>
        /// <param name="markierung">Die nächste neue Markierung.</param>
        public override void RiechtFreund(Markierung markierung)
        {
            switch (Kaste)
            {
            case "Sammler":
                if (markierung.Information != -1 && Ziel == null)
                {
                    DreheInRichtung(markierung.Information);
                    GeheGeradeaus(20);
                }
                break;

            case "Krieger":
                if (markierung.Information == -1 && Ziel == null)
                {
                    int entfernung = Koordinate.BestimmeEntfernung(this, markierung);
                    if (entfernung > 50)
                    {
                        entfernung = 50;
                    }
                    SprüheMarkierung(-1, entfernung);
                    GeheZuZiel(markierung);
                }
                break;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (Ziel == null)
     {
         GeheZuZiel(markierung);
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (AktuelleLast == 0)
     {
         DreheInRichtung(markierung.Information);
     }
 }
Exemplo n.º 7
0
        public override void RiechtFreund(Markierung markierung)
        {
            if (poltergeist.IstVollBeladen || poltergeist.MussSchlafen)
            {
                return;
            }

            if (poltergeist.Ziel == null && marker.IstZucker(markierung))
            {
                poltergeist.GeheZuZiel(markierung);
            }
            else
            //  ziel != null
            if (poltergeist.Ziel is Zucker)
            {
                // erstmal nix tun, geht ja schon zu zucker
                // TODO prioritätsabschätzung
                // prioabwägung: abstand, menge
            }
            // b) ziel != zucker &&  marker = zuckerLokalisiert => ziel ändern
            else if (!(poltergeist.Ziel is Zucker) && marker.IstZuckerLokalisiert(markierung))
            {
                poltergeist.GeheZuZiel(markierung);
            }
        }
 public override void RiechtFreund(Markierung markierung)
 {
     if (myAmeise.Ziel == null && !collectingFood() && isCallForFood(markierung))
     {
         myAmeise.GeheZuZiel(markierung);
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
 /// befreundete Markierung riecht.
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (Kaste == "Attacker")
     {
         // Die Ameise soll, sofern sie nicht schon ein Ziel wie "Käfer", "Markierung" oder "Bau" hat auf direktem Weg zum laufen von wo aus man hoffentlich weitere Markierungen oder direkt den Käfer sieht.
         if (Ziel == null)
         {
             GeheZuZiel(markierung);
         }
     }
     if (Kaste == "Appler")
     {
         // Sollte die Ameise nicht schon Obst im Auge haben oder auf dem Weg zum Bau sein soll sie, wenn die angeforderte Menge Ameisen die Ameisenmenge der gerade in Sichtweite befindlichen Ameisen übersteigt, zum Markierungsmittelpunkt gehen um dort hoffentlich den Apfel zu sehen.
         if (!(Ziel is Obst) &&
             !(Ziel is Bau) &&
             AnzahlAmeisenInSichtweite < markierung.Information)
         {
             GeheZuZiel(markierung);
             // Sollte die Entfernung mehr als 50 schritte zum Mittelpunkt betragen, soll eine Folgemarkierung gesprüht werden um denn Effektradius zu erhöhen.
             if (Koordinate.BestimmeEntfernung(this, markierung) > 50)
             {
                 SprüheMarkierung(
                     Koordinate.BestimmeRichtung(this, markierung),
                     Koordinate.BestimmeEntfernung(this, markierung));
             }
         }
         else
         {
             // In allen anderen Fällen soll sie kurz stehen bleiben um zu verhindern, dass die Ameise dem Apfel ewig hinterher läuft.
             BleibStehen();
         }
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (!laufeWeg && Ziel == null)
     {
         DreheInRichtung(markierung.Information);
         GeheGeradeaus(10);
     }
 }
Exemplo n.º 11
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (gruppenführer[gruppe] == this && Ziel == null)
     {
         DreheInRichtung(markierung.Information);
         GeheGeradeaus(20);
     }
 }
Exemplo n.º 12
0
 public override void RiechtFreund(Markierung markierung)
 {
     if (myAmeise.Ziel == null && markierung.Information == warCall)
     {
         myAmeise.Denke("Off to war...");
         myAmeise.GeheZuZiel(markierung);
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Wird wiederholt aufgerufen in der die Ameise mindestens eine
 /// Markierung des selben Volkes riecht.
 /// </summary>
 /// <param name="markierung">Die nächstgelegene neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     // Die Ameise soll, sofern sie nicht schon ein Ziel wie "Käfer",
     // "Markierung" oder "Bau" hat auf direktem Weg zum Markierungsmittelpunkt
     // laufen von wo aus man hoffentlich weitere Markierungen oder direkt den
     // Käfer sieht.
     if (Ziel == null)
     {
         GeheZuZiel(markierung);
     }
 }
Exemplo n.º 14
0
 public override void Riecht(Markierung markierung)
 {
     if (markierung.IstEigeneMarkierung && AktuellesZiel == null)
     {
         if (markierung.Information >= 0)
         {
             DreheZu(markierung.Information);
             GeheGeradeaus(100);
         }
         else
             GeheZu(markierung);
     }
 }
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (this.Ziel != null || zielOptimized != null)
     {
         return;
     }
     //Die Information enthält bei uns den Empfänger.
     //int.Max richtet sich dabei an Apfelsammler
     //-1 richtet sich dabei an Krieger
     if ((markierung.Information == -1 && Kaste == "Krieger") || (markierung.Information == int.MaxValue && Kaste == "Apfelsammler"))
     {
         this.GeheZuZielOptimized(markierung);
     }
 }
Exemplo n.º 16
0
 public override void Riecht(Markierung markierung)
 {
     if (markierung.IstEigeneMarkierung && AktuellesZiel == null)
     {
         if (markierung.Information >= 0)
         {
             DreheZu(markierung.Information);
             GeheGeradeaus(100);
         }
         else
         {
             GeheZu(markierung);
         }
     }
 }
Exemplo n.º 17
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (Kaste == "Wächter")
     {
         if (gemerkterZucker == null)
         {
             DreheInRichtung(markierung.Information);
             GeheGeradeaus();
         }
     }
     else if (Ziel == null)
     {
         DreheInRichtung(markierung.Information);
         GeheGeradeaus();
     }
 }
Exemplo n.º 18
0
        public override void RiechtFreund(Markierung markierung)
        {
            if (markierung.Information > 1000 && markierung.Information < 2000)
            {
                Zucker z = Storage.zucker[markierung.Information - 1000 - 1];
                try
                {
                    if (z != null)
                    {
                        if (sugar != null && bau != null)
                        {
                            if ((getD(bau, z) > getD(bau, sugar)) && getD(a, z)
                                + getD(z, bau) > getD(a, sugar) + getD(sugar, bau))
                            {
                                return;
                            }
                        }

                        sugar = z;

                        if (Ziel == null && AktuelleLast < MaximaleLast && !evading)
                        {
                            if (AktuelleLast < MaximaleLast && Ziel != sugar && Ziel != bau && Ziel != apple)
                            {
                                Sprint(sugar);
                            }
                        }
                        else
                        {
                            if (AktuelleLast == MaximaleLast && !evading)
                            {
                                Sprint(bau);
                            }
                        }
                    }
                }
                catch
                {
                    Denke("OMG Exception");
                    Storage.zucker.RemoveAt(markierung.Information - 1000 - 1);
                }
            }
        }
Exemplo n.º 19
0
        /// <summary>
        /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
        /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
        /// befreundete Markierung riecht.
        /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
        /// </summary>
        /// <param name="markierung">Die gerochene Markierung</param>
        public override void RiechtFreund(Markierung markierung)
        {
            //Gehe in Richtung Zuckerberg
            if (markierung.Information < 1000)
            {
                if (Ziel == null)
                {
                    //Drehe Richtung Zuckerberg
                    DreheInRichtung(markierung.Information);
                    GeheGeradeaus();
                }
            }

            //Gehe zu Apfel um zu helfen
            if (markierung.Information == 1000 && AktuelleLast == 0)
            {
                GeheZuZiel(markierung);
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
        /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
        /// befreundete Markierung riecht.
        /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
        /// </summary>
        /// <param name="markierung">Die gerochene Markierung</param>
        public override void RiechtFreund(Markierung markierung)
        {
            if ((markierung.Information == 1000 && Kaste == "Sammler") || (markierung.Information == 1000 && Kaste == "Späher") || (markierung.Information == 1001 && Kaste == "Kämpfer"))
            {
                if (Ziel == null)
                {
                    GeheZuZiel(markierung);
                }
            }

            if (markierung.Information < 1000 && Kaste == "Sammler")
            {
                if (Ziel == null)
                {
                    DreheInRichtung(markierung.Information);
                    GeheGeradeaus();
                    Denke("Gehe zu Fressen");
                }
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
        /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
        /// gerochen.
        /// </summary>
        /// <param name="markierung">Die nächste neue Markierung.</param>
        public override void RiechtFreund(Markierung markierung)
        {
            // Auf Markierungen wird nur reagiert, wenn das Ziel nicht der Bau oder
            // Zucker ist.
            if (!(Ziel is Zucker) && !(Ziel is Bau))
            {
                // Die Richtung aus der Markierung auslesen und über die Doppelte sichtweite loslaufen
                DreheInRichtung(markierung.Information);
                GeheGeradeaus(Sichtweite * 2);

                // Sollte die Entfernung mehr als 50 schritte zum Mittelpunkt betragen
                // soll eine Folgemarkierung gesprüht werden um denn Effektradius zu
                // erhöhen.
                if (Koordinate.BestimmeEntfernung(this, markierung) > 50)
                {
                    SprüheMarkierung(
                        Koordinate.BestimmeRichtung(this, markierung),
                        Koordinate.BestimmeEntfernung(this, markierung));
                }
            }
        }
Exemplo n.º 22
0
        /// <summary>
        /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
        /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
        /// gerochen.
        /// </summary>
        /// <param name="markierung">Die nächste neue Markierung.</param>
        public override void RiechtFreund(Markierung markierung)
        {
            switch (Kaste)
            {
            case "Kundschafter":
                GeheWegVon(markierung);
                break;

            case "Sammler":
                if (Ziel == null)
                {
                    GeheZuZiel(markierung);
                }
                break;

            case "Krieger":
                if (!verteidigen)
                {
                    GeheZuZiel(markierung);
                }
                break;
            }
        }
Exemplo n.º 23
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen 
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine 
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
 }
Exemplo n.º 24
0
        public bool IstZuckerLokalisiert(Markierung markierung)
        {
            var infoCode = markierung.Information;

            return(infoCode >= ZUCKER_LOKALISIERT && infoCode < OBST_GESEHEN);
        }
Exemplo n.º 25
0
        public bool IstZuckerGesehen(Markierung markierung)
        {
            var infoCode = markierung.Information;

            return(infoCode >= ZUCKER_GESEHEN && infoCode < ZUCKER_LOKALISIERT);
        }
Exemplo n.º 26
0
 public bool IstZucker(Markierung markierung) =>
 IstZuckerGesehen(markierung) || IstZuckerLokalisiert(markierung);
Exemplo n.º 27
0
 public void RiechtFreund(Markierung markierung)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 28
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     networkCommands("RiechtFreund", markierung, markierung.Information.ToString());
 }
Exemplo n.º 29
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     brain.RiechtFreund(markierung);
 }
Exemplo n.º 30
0
 public abstract void RiechtFreund(Markierung markierung);
Exemplo n.º 31
0
        /// <summary>
        /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
        /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
        /// gerochen.
        /// </summary>
        /// <param name="markierung">Die nächste neue Markierung.</param>
        public override void RiechtFreund(Markierung markierung)
        {
            Marker marker = Markers.Get(markierung.Information);

            try
            {
                switch (marker.markerType)
                {
                case Marker.MarkerType.HilfeAmeise:
                    //Hilfsbereitschaft, Teamfähigkeit prüfen
                    //Nahrung fallen lassen
                    //helfen

                    //wenn sie nicht schon beim angreifen ist
                    if (!greiftAn)
                    {
                        //dann über Angriff nachdenken
                        if (FuzzyInferenceSystem.Superdecision5x5x2(character.teamfaehigkeit, character.ameisenFreundeInNaehe, character.angreifen, memory.GetDecisionValue(DecisionType.AngreifenAmeise)))
                        {
                            if (marker.markerInformation == Marker.MarkerInformationType.Insekt)
                            {
                                LasseNahrungFallen();
                                trägtNahrung = false;
                                GreifeAn(marker.Insekt);
                                greiftAn    = true;
                                hilftFreund = true;
                                memory.ActionDone(DecisionType.AngreifenAmeise);
                                setActionBreak();
                            }
                            else
                            {
                                Weitermachen();
                            }
                        }
                        else
                        {
                            Weitermachen();
                        }
                    }
                    else
                    {
                        Weitermachen();
                    }
                    break;

                case Marker.MarkerType.HilfeObst:
                    //Hilfsbereitschaft, Teamfähigkeit prüfen
                    //nur wenn keine eigene Nahrung
                    //helfen
                    if (!trägtNahrung)
                    {
                        if (FuzzyInferenceSystem.Superdecision5x5x2(character.faulheit, character.energie, character.sammelnobst, memory.GetDecisionValue(DecisionType.SammelnObst)) && FuzzyInferenceSystem.Superdecision5x5x2(character.teamfaehigkeit, character.ameisenFreundeInNaehe, character.sammelnobst, memory.GetDecisionValue(DecisionType.Gruppieren)))
                        {
                            if (marker.markerInformation == Marker.MarkerInformationType.Object)
                            {
                                GeheZuZiel(marker.Objekt);
                                hilftFreund = true;
                                memory.ActionDone(DecisionType.SammelnObst);
                                memory.ActionDone(DecisionType.Gruppieren);
                                setActionBreak();
                                //SprüheMarkierung(Markers.Add(new Marker(Marker.MarkerType.Obst, marker.Objekt)), MarkierungGrößeHilfeLokal);
                            }
                            else
                            {
                                Weitermachen();
                            }
                        }
                        else
                        {
                            Weitermachen();
                        }
                    }
                    else
                    {
                        Weitermachen();
                    }
                    break;

                case Marker.MarkerType.HilfeWanze:
                    //Hilfsbereitschaft, Teamfähigkeit prüfen
                    //Anzahl Freunde prüfen
                    //Nahrung fallen lassen
                    //helfen

                    //wenn sie nicht schon beim Angreifen ist
                    if (!greiftAn)
                    {
                        //dann über Angriff nachdenken
                        if (FuzzyInferenceSystem.Superdecision5x5x2(character.teamfaehigkeit, character.ameisenFeindeInNaehe, character.angreifen, memory.GetDecisionValue(DecisionType.AngreifenWanze)))
                        {
                            if (marker.markerInformation == Marker.MarkerInformationType.Insekt)
                            {
                                LasseNahrungFallen();
                                trägtNahrung = false;
                                GreifeAn(marker.Insekt);
                                greiftAn    = true;
                                hilftFreund = true;
                                memory.ActionDone(DecisionType.AngreifenWanze);
                                setActionBreak();
                                //SprüheMarkierung(Markers.Add(new Marker(Marker.MarkerType.HilfeWanze, marker.Insekt)), MarkierungGrößeHilfeLokal);
                            }
                        }
                        else
                        {
                            Weitermachen();
                        }
                    }
                    else
                    {
                        Weitermachen();
                    }
                    break;

                case Marker.MarkerType.Obst:
                    //das gleiche wie bei siehtObst()
                    if (!trägtNahrung)
                    {
                        if (FuzzyInferenceSystem.Superdecision5x5x2(character.faulheit, character.energie, character.sammelnobst, memory.GetDecisionValue(DecisionType.SammelnObst)) && FuzzyInferenceSystem.Superdecision5x5x2(character.teamfaehigkeit, character.ameisenFreundeInNaehe, character.sammelnobst, memory.GetDecisionValue(DecisionType.Gruppieren)))
                        {
                            if (marker.markerInformation == Marker.MarkerInformationType.Object)
                            {
                                GeheZuZiel(marker.Objekt);
                                hilftFreund = true;
                                memory.ActionDone(DecisionType.SammelnObst);
                                memory.ActionDone(DecisionType.Gruppieren);
                                setActionBreak();

                                //SprüheMarkierung
                                //SprüheMarkierung(Markers.Add(new Marker(Marker.MarkerType.HilfeObst, marker.Objekt)), MarkierungGrößeHilfeLokal);
                            }
                            else
                            {
                                Weitermachen();
                            }
                        }
                        else
                        {
                            //kein Bock, Obst aufzunehmen
                            Weitermachen();
                        }
                    }
                    else
                    {
                        Weitermachen();
                    }
                    break;

                case Marker.MarkerType.Zucker:
                    //das Gleiche wie bei siehtZucker()
                    if (!trägtNahrung)
                    {
                        if (FuzzyInferenceSystem.Superdecision5x5x2(character.faulheit, character.energie, character.sammelnzucker, memory.GetDecisionValue(DecisionType.SammelnZucker)))
                        {
                            //SprüheMarkierung((int)Information.ZielNahrung, MarkierungGrößeSammler);
                            if (marker.markerInformation == Marker.MarkerInformationType.Object)
                            {
                                GeheZuZiel(marker.Objekt);
                            }
                            else
                            {
                                if (marker.markerInformation == Marker.MarkerInformationType.Richtung)
                                {
                                    DreheInRichtung(marker.richtung);
                                    GeheGeradeaus();


                                    memory.ActionDone(DecisionType.SammelnZucker);
                                    setActionBreak();

                                    //SprüheMarkierung
                                    //SprüheMarkierung(Markers.Add(new Marker(Marker.MarkerType.Zucker, marker.Objekt)), MarkierungGrößeInformation);
                                }
                                else
                                {
                                    Weitermachen();
                                }
                            }
                        }
                        else
                        {
                            Weitermachen();
                        }
                    }
                    else
                    {
                        //traegt Nahrung
                        Weitermachen();
                    }
                    break;

                default:
                    Weitermachen();
                    break;
                }
            }
            catch (NullReferenceException)
            {
                //wahrscheinlich ungültige Markierung
            }
        }
Exemplo n.º 32
0
 /// <summary>
 /// Wird einmal aufgerufen, wenn die Ameise eine Markierung des selben
 /// Volkes riecht. Einmal gerochene Markierungen werden nicht erneut
 /// gerochen.
 /// </summary>
 /// <param name="markierung">Die nächste neue Markierung.</param>
 public override void RiechtFreund(Markierung markierung)
 {
     networkCommands("RiechtFreund", markierung, markierung.Information.ToString());
 }
Exemplo n.º 33
0
 /// <summary>
 /// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen 
 /// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine 
 /// befreundete Markierung riecht.
 /// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
 /// </summary>
 /// <param name="markierung">Die gerochene Markierung</param>
 public override void RiechtFreund(Markierung markierung)
 {
     if (AktuelleLast == 0)
     {
         DreheInRichtung(markierung.Information);
     }
 }
Exemplo n.º 34
0
 public override void RiechtFreund(Markierung markierung)
 {
     verhalten.RiechtFreund(markierung);
 }
Exemplo n.º 35
0
 public override void RiechtFreund(Markierung markierung)
 {
 }
Exemplo n.º 36
0
 public override void RiechtFreund(Markierung markierung)
 {
     ameisenActionHandler.RiechtFreund(markierung);
 }