locked
Fehler schon im Tutorial??

    Frage

  • Hallo.

    Ich bin neu hier und habe mir eben die Visual C# Version und AntME gedownloadet und mich ins Tutorial gestürtzt... Bin nun bei der Kampf Lektion und da gibts ein Problem.

    Ich habe alles so gemacht wie es da stand:

            public override void Sieht(Käfer käfer) {
                LasseNahrungFallen();
                if (AnzahlInSichtweite * Angriff > käfer.Energie)
                    GreifeAn(käfer);
               else
                    GeheWegVon(käfer);
            }


    Aber ich bekomme beim debuggen folgende Fehlermeldung:

    Fehler    1    "AntMe.Käfer" enthält keine Definition für "Energie". 


    Was kann ich da tun?

    Gruß, soul.

    Mittwoch, 24. Oktober 2007 14:54

Alle Antworten

  • ja das ist sicher nur ein kleiner schreibfehler.

    muss heißen : käfer.AktuelleEnergie.

    so müsste es gehen

    mfg crale
    Mittwoch, 24. Oktober 2007 15:38
  • Jetzt gehts danke.
    Mittwoch, 24. Oktober 2007 16:26
    1. Suche die Methode IstUnterwegs.
    2. Füge folgenden Quelltext hinzu:
      if (Ziel is Bau && AktuelleLast > 0 && GetragenesObst == null)
      SprüheMarkierung(Richtung + 180);




    Ich habe bei der Anleitung die ich oben eingefügt habe das Problem, dass ich die Methode
    "IstUnterwegs" IM Quellcode einfach nicht finde. Bin ich blind, oder was ist da los?


    Mein Quellcode (ist kopiert aus der Vorlage):

    using System;
    using System.Collections.Generic;
    using System.Text;
    using AntMe;

    namespace AntMe.Spieler.Kevin {

    [Spieler(
    Name = "StarkesVolk",
    Vorname = "Kevin",
    Nachname = ""
    )]

    // Das Typ-Attribut hier erlaubt das Ändern der Ameisen-Eigenschaften. Um hier Änderungen vorzunehmen muss
    // dem neuen Ameisentyp unbedingt ein Name zugewiesen und bei "BestimmeTyp" auch angegeben werden.
    // Eine genauere Beschreibung gibts in Lektion 6 des Ameisen-Tutorials
    [Typ(
    Name = "",
    GeschwindigkeitModifikator = 0,
    DrehgeschwindigkeitModifikator = 0,
    LastModifikator = 0,
    ReichweiteModifikator = 0,
    SichtweiteModifikator = 0,
    EnergieModifikator = 0,
    AngriffModifikator = 0
    )]

    public class MeineAmeise1 : Ameise {

    /// <summary>
    /// Gibt dem Spieler die Möglichkeit, eigene Variablen zu initialisieren.
    /// Wird vor jedem Spiel aufgerufen. Statische Variablen müssen hier
    /// initialisiert werden!
    /// </summary>
    public static void Initialisiere() {
    }

    /// <summary>
    /// Bestimmt den Typ einer neu zu erzeugenden Ameise.
    /// </summary>
    /// <param name="anzahl">Anzahl der vorhandenen Ameisen pro Typ</param>
    /// <returns>Name des Typs</returns>
    public static string BestimmeTyp(Dictionary<string, int> anzahl) {
    return "";
    }

    /// <summary>
    /// Der Ameise Konstruktor.
    /// </summary>
    /// <param name="volk">Das Volk zu dem die neue Ameise gehört</param>
    /// <param name="typIndex">Der Typ der neuen Ameise</param>
    public MeineAmeise1(Volk volk, int typIndex) : base(volk, typIndex) {
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise nicht weiss wo sie hingehen soll.
    /// </summary>
    public override void Wartet() {
    GeheGeradeaus();
    }

    /// <summary>
    /// Wird einmal aufgerufen, sobald die Ameise ein Drittel ihrer maximalen
    /// Reichweite überschritten hat.
    /// </summary>
    public override void WirdMüde() {
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise einen Zuckerhaufen sieht.
    /// </summary>
    /// <param name="zucker">Zuckerhaufen</param>
    public override void Sieht(Zucker zucker) {
    if (!(Ziel is Käfer))
    {
    SprüheMarkierung(0, 100);

    if (AktuelleLast == 0)
    GeheZuZiel(zucker);
    }
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise ein Stück Obst sieht.
    /// </summary>
    /// <param name="obst">Obst</param>
    public override void Sieht(Obst obst) {
    if (!(Ziel is Käfer))
    {
    SprüheMarkierung(0, 100);

    if (AktuelleLast == 0 && BrauchtNochTräger(obst))
    GeheZuZiel(obst);
    }
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise einen Käfer sieht.
    /// </summary>
    /// <param name="käfer">Käfer</param>
    public override void Sieht(Käfer käfer) {

    SprüheMarkierung(0, 100);

    LasseNahrungFallen();
    if (AnzahlInSichtweite * Angriff > käfer.AktuelleEnergie)
    GreifeAn(käfer);
    else
    GeheWegVon(käfer);
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise eine Markierung sieht.
    /// </summary>
    /// <param name="markierung">Markierung</param>
    public override void Sieht(Markierung markierung) {
    if (Ziel == null)
    GeheZuZiel(markierung);

    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise von einem Käfer angegriffen wird.
    /// </summary>
    /// <param name="käfer">Käfer</param>
    public override void WirdAngegriffen(Käfer käfer) {
    if (AktuelleEnergie < MaximaleEnergie / 2)
    GeheZuBau();
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise bei einem Zuckerhaufen ankommt.
    /// </summary>
    /// <param name="zucker">Zuckerhaufen</param>
    public override void ZielErreicht(Zucker zucker) {
    Nimm(zucker);
    GeheZuBau();

    }



    /// <summary>
    /// Wird aufgerufen, wenn die Ameise bei einem Stück Obst ankommt.
    /// </summary>
    /// <param name="obst">Obst</param>
    public override void ZielErreicht(Obst obst) {
    if (BrauchtNochTräger(obst))
    {
    Nimm(obst);
    GeheZuBau();
    }
    }

    /// <summary>
    /// Wird aufgerufen, wenn die Ameise gestorben ist.
    /// </summary>
    /// <param name="todesArt">Die Todesart der Ameise</param>
    public override void IstGestorben(TodesArt todesArt) {
    }

    /// <summary>
    /// Wird in jeder Runde aufgerufen.
    /// </summary>
    public override void Tick() {
    }

    }

    }

    Mittwoch, 24. Oktober 2007 19:27
  • Hallo
    das ist nicht dein Fehler...
    im Moment heist das:
    public override void Tick() {
    }
    Aber es wird jede Runde ausgeführt also auch wenn die Ameise kein Ziel hat.

    MaR-V-iN


    Montag, 19. November 2007 16:06