1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Ant Me! Probleme

Discussion in 'Programmieren' started by User03, Apr 25, 2009.

Thread Status:
Not open for further replies.
  1. User03

    User03 Kbyte

    Hi. Ich mache alles noch der Anleitung, trotzdem gibt es Fehler. Ich hoffe, ihr könnt das verbessern.
    Code:
    using System;
    using System.Collections.Generic;
    
    using AntMe.Deutsch;
    
    // Füge hier hinter AntMe.Spieler einen Punkt und deinen Namen ohne Leerzeichen
    // ein! Zum Beispiel "AntMe.Spieler.WolfgangGallo".
    namespace AntMe.Spieler
    {
    
        // Das Spieler-Attribut erlaubt das Festlegen des Volk-Names und von Vor-
        // und Nachname des Spielers. Der Volk-Name muß zugewiesen werden, sonst wird
        // das Volk nicht gefunden.
        [Spieler(
            Volkname = "Meine erste C#-Ameise",
            Vorname = "",
            Nachname = ""
        )]
    
        // Das Typ-Attribut erlaubt das Ändern der Ameisen-Eigenschaften. Um den Typ
        // zu aktivieren muß ein Name zugewiesen und dieser Name in der Methode 
        // BestimmeTyp zurückgegeben werden. Das Attribut kann kopiert und mit
        // verschiedenen Namen mehrfach verwendet werden.
        // Eine genauere Beschreibung gibts in Lektion 6 des Ameisen-Tutorials.
        [Kaste(
            Name = "Standard",
            GeschwindigkeitModifikator = 0,
            DrehgeschwindigkeitModifikator = 0,
            LastModifikator = 0,
            ReichweiteModifikator = 0,
            SichtweiteModifikator = 0,
            EnergieModifikator = 0,
            AngriffModifikator = 0
        )]
    
        public class MeineAmeise1 : Basisameise
        {
    
            #region Kaste
    
            /// <summary>
            /// Bestimmt die Kaste einer neuen Ameise.
            /// </summary>
            /// <param name="anzahl">Die Anzahl der von jeder Kaste bereits vorhandenen
            /// Ameisen.</param>
            /// <returns>Der Name der Kaste der Ameise.</returns>
            public override string BestimmeKaste(Dictionary<string, int> anzahl)
            {
                return "Standard";
            }
    
            #endregion
    
            #region Fortbewegung
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn der die Ameise nicht weiss wo sie
            /// hingehen soll.
            /// </summary>
            public override void Wartet()
            {
                GeheGeradeaus();
    
            }
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise ein Drittel ihrer maximalen
            /// Reichweite überschritten hat.
            /// </summary>
            public override void WirdMüde()
            {
            }
    
            #endregion
    
            #region Nahrung
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens einen
            /// Zuckerhaufen sieht.
            /// </summary>
            /// <param name="zucker">Der nächstgelegene Zuckerhaufen.</param>
            public override void Sieht(Zucker zucker)
            {
                int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindstens ein
            /// Obststück sieht.
            /// </summary>
            /// <param name="obst">Das nächstgelegene Obststück.</param>
            public override void Sieht(Obst obst)
            {int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    
    
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn di e Ameise einen Zuckerhaufen als Ziel
            /// hat und bei diesem ankommt.
            /// </summary>
            /// <param name="zucker">Der Zuckerhaufen.</param>
            public override void ZielErreicht(Zucker zucker)
            {
                Nimm(zucker);
                GeheZuBau();
            }
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise ein Obststück als Ziel hat und
            /// bei diesem ankommt.
            /// </summary>
            /// <param name="obst">Das Obstück.</param>
            public override void ZielErreicht(Obst obst)
            {
            }
    
            #endregion
    
            #region Kommunikation
    
            /// <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) {
        DreheInRichtung(markierung.Information);
        GeheGeradeaus();
    }}
    
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindstens eine Ameise des
            /// selben Volkes sieht.
            /// </summary>
            /// <param name="ameise">Die nächstgelegene befreundete Ameise.</param>
            public override void SiehtFreund(Ameise ameise)
            {
            }
    
            /// <summary>
            /// Wird aufgerufen, wenn die Ameise eine befreundete Ameise eines anderen Teams trifft.
            /// </summary>
            /// <param name="ameise"></param>
            public override void SiehtVerbündeten(Ameise ameise)
            {
            }
    
            #endregion
    
            #region Kampf
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Wanze
            /// sieht.
            /// </summary>
            /// <param name="wanze">Die nächstgelegene Wanze.</param>
            public override void SiehtFeind(Wanze wanze)
            {
                int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Ameise eines
            /// anderen Volkes sieht.
            /// </summary>
            /// <param name="ameise">Die nächstgelegen feindliche Ameise.</param>
            public override void SiehtFeind(Ameise ameise)
            {
            }
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise von einer Wanze angegriffen
            /// wird.
            /// </summary>
            /// <param name="wanze">Die angreifende Wanze.</param>
            public override void WirdAngegriffen(Wanze wanze)
            {
                if (AktuelleEnergie < MaximaleEnergie / 2)
                    GeheZuBau();
    
    
            }
    
            /// <summary>
            /// Wird wiederholt aufgerufen in der die Ameise von einer Ameise eines
            /// anderen Volkes Ameise angegriffen wird.
            /// </summary>
            /// <param name="ameise">Die angreifende feindliche Ameise.</param>
            public override void WirdAngegriffen(Ameise ameise)
            {}private bool krieg = false;
                krieg = true;
    
    
            }
    
            #endregion
    
            #region Sonstiges
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise gestorben ist.
            /// </summary>
            /// <param name="todesart">Die Todesart der Ameise</param>
            public override void IstGestorben(Todesart todesart)
            {
            }
    
            /// <summary>
            /// Wird unabhängig von äußeren Umständen in jeder Runde aufgerufen.
            /// </summary>
            public override void Tick()
            {if (Ziel is Bau && AktuelleLast > 0 && GetragenesObst == null)
    {
        SprüheMarkierung(Richtung + 180);
    }
    
    
            }
    
            #endregion
             
        }
    }
     
  2. AS_X

    AS_X Halbes Megabyte

    Was willst du tun und welche Fehler treten auf?
     
  3. User03

    User03 Kbyte

    Ich habe den Quelltext selber noch ver&#228;ndert deswegen poste ich ihn nochmal:
     
    Last edited: May 2, 2009
  4. kazhar

    kazhar Viertel Gigabyte

    bl&#246;de frage: hast du das hier eigentlich gemacht?
    Code:
    //F&#252;ge hier hinter AntMe.Spieler einen Punkt und deinen Namen ohne Leerzeichen
    // ein! Zum Beispiel "AntMe.Spieler.WolfgangGallo".
    namespace AntMe.Spieler
     
  5. User03

    User03 Kbyte

    Vergessen meinen Namen einzugeben :)
     
  6. kazhar

    kazhar Viertel Gigabyte

    bei der gelegenheit kannst du das auch korrigieren:
    Code:
     public override void SiehtFeind(Wanze wanze)
    {
    int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    Spr&#252;heMarkierung(richtung, entfernung);
    
    }
    da gibts keinen zucker ;)
     
  7. User03

    User03 Kbyte

    jetzt hat sich die fehlerliste verändert ich poste sie nochmal
    Fehler 1
    Fehler 2
    Fehler 3
    Fehler 4
    Fehler 5
    Fehler 6
    Fehler 7
    Fehler 8
    Fehler 9
    Fehler 10
    Fehler 11
    Quelltext:
    Code:
    using System;
    using System.Collections.Generic;
    
    using AntMe.Deutsch;
    
    // Füge hier hinter AntMe.Spieler einen Punkt und deinen Namen ohne Leerzeichen
    // ein! Zum Beispiel "AntMe.Spieler.WolfgangGallo".
    namespace AntMe.Spieler.TobiasR
    {
    
        // Das Spieler-Attribut erlaubt das Festlegen des Volk-Names und von Vor-
        // und Nachname des Spielers. Der Volk-Name muß zugewiesen werden, sonst wird
        // das Volk nicht gefunden.
        [Spieler(
            Volkname = "Meine erste C#-Ameise",
            Vorname = "",
            Nachname = ""
        )]
    
        // Das Typ-Attribut erlaubt das Ändern der Ameisen-Eigenschaften. Um den Typ
        // zu aktivieren muß ein Name zugewiesen und dieser Name in der Methode 
        // BestimmeTyp zurückgegeben werden. Das Attribut kann kopiert und mit
        // verschiedenen Namen mehrfach verwendet werden.
        // Eine genauere Beschreibung gibts in Lektion 6 des Ameisen-Tutorials.
        [Kaste(
            Name = "Standard",
            GeschwindigkeitModifikator = 0,
            DrehgeschwindigkeitModifikator = 0,
            LastModifikator = 0,
            ReichweiteModifikator = 0,
            SichtweiteModifikator = 0,
            EnergieModifikator = 0,
            AngriffModifikator = 0
        )]
    
        public class MeineAmeise1 : Basisameise
        {
    
            #region Kaste
    
            /// <summary>
            /// Bestimmt die Kaste einer neuen Ameise.
            /// </summary>
            /// <param name="anzahl">Die Anzahl der von jeder Kaste bereits vorhandenen
            /// Ameisen.</param>
            /// <returns>Der Name der Kaste der Ameise.</returns>
            public override string BestimmeKaste(Dictionary<string, int> anzahl)
            {
                return "Standard";
            }
    
            #endregion
    
            #region Fortbewegung
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn der die Ameise nicht weiss wo sie
            /// hingehen soll.
            /// </summary>
            public override void Wartet()
            {
                GeheGeradeaus();
    
            }
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise ein Drittel ihrer maximalen
            /// Reichweite überschritten hat.
            /// </summary>
            public override void WirdMüde()
            {
            }
    
            #endregion
    
            #region Nahrung
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens einen
            /// Zuckerhaufen sieht.
            /// </summary>
            /// <param name="zucker">Der nächstgelegene Zuckerhaufen.</param>
            public override void Sieht(Zucker zucker)
            {
                int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindstens ein
            /// Obststück sieht.
            /// </summary>
            /// <param name="obst">Das nächstgelegene Obststück.</param>
            public override void Sieht(Obst obst)
            {int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    
    
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn di e Ameise einen Zuckerhaufen als Ziel
            /// hat und bei diesem ankommt.
            /// </summary>
            /// <param name="zucker">Der Zuckerhaufen.</param>
            public override void ZielErreicht(Zucker zucker)
            {
                Nimm(zucker);
                GeheZuBau();
            }
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise ein Obststück als Ziel hat und
            /// bei diesem ankommt.
            /// </summary>
            /// <param name="obst">Das Obstück.</param>
            public override void ZielErreicht(Obst obst)
            {
            }
    
            #endregion
    
            #region Kommunikation
    
            /// <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) {
        DreheInRichtung(markierung.Information);
        GeheGeradeaus();
    }}
    
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindstens eine Ameise des
            /// selben Volkes sieht.
            /// </summary>
            /// <param name="ameise">Die nächstgelegene befreundete Ameise.</param>
            public override void SiehtFreund(Ameise ameise)
            {
            }
    
            /// <summary>
            /// Wird aufgerufen, wenn die Ameise eine befreundete Ameise eines anderen Teams trifft.
            /// </summary>
            /// <param name="ameise"></param>
            public override void SiehtVerbündeten(Ameise ameise)
            {
            }
    
            #endregion
    
            #region Kampf
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Wanze
            /// sieht.
            /// </summary>
            /// <param name="wanze">Die nächstgelegene Wanze.</param>
         public override void SiehtFeind(Wanze wanze)
    {
    int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, zucker);
    richtung = Koordinate.BestimmeRichtung(this, zucker);
    SprüheMarkierung(richtung, entfernung);
    
    }
    
    }
    
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Ameise eines
            /// anderen Volkes sieht.
            /// </summary>
            /// <param name="ameise">Die nächstgelegen feindliche Ameise.</param>
            public override void SiehtFeind(Ameise ameise)
            {
            }
    
            /// <summary>
            /// Wird wiederholt aufgerufen, wenn die Ameise von einer Wanze angegriffen
            /// wird.
            /// </summary>
            /// <param name="wanze">Die angreifende Wanze.</param>
            public override void WirdAngegriffen(Wanze wanze)
            {
                if (AktuelleEnergie < MaximaleEnergie / 2)
                    GeheZuBau();
    
    
            }
    
            /// <summary>
            /// Wird wiederholt aufgerufen in der die Ameise von einer Ameise eines
            /// anderen Volkes Ameise angegriffen wird.
            /// </summary>
            /// <param name="ameise">Die angreifende feindliche Ameise.</param>
            public override void WirdAngegriffen(Ameise ameise)
            {}private bool krieg = false;
                krieg = true;
    
    
            }
    
            #endregion
    
            #region Sonstiges
    
            /// <summary>
            /// Wird einmal aufgerufen, wenn die Ameise gestorben ist.
            /// </summary>
            /// <param name="todesart">Die Todesart der Ameise</param>
            public override void IstGestorben(Todesart todesart)
            {
            }
    
            /// <summary>
            /// Wird unabhängig von äußeren Umständen in jeder Runde aufgerufen.
            /// </summary>
            public override void Tick()
            {if (Ziel is Bau && AktuelleLast > 0 && GetragenesObst == null)
    {
        SprüheMarkierung(Richtung + 180);
    }
    
    
            }
    
            #endregion
             
        }
    }
     
    Last edited: May 2, 2009
Thread Status:
Not open for further replies.

Share This Page