none
AntMe! Fehler im Koordinaten System RRS feed

  • Frage

  • Hallo, Ich wurde heute erst Arrays, ArrayLists, foreach, for, und while schleifen vorgestellt und habe immoment ein Problem damit die kürzeste Strecke von Apfel und Zucker (FruitsAndSugar) zu berechenen. Ich rechne mit Kartesischen Koordinaten

    Hier mein kompletter Koordinatenspeicher:

        class Koordinatenspeicher
        {
            private static ArrayList FruitsAndSugar = new ArrayList();
            private static ArrayList DeletedObjects = new ArrayList(); //gelschte Objekte speichern  
            public static ArrayList MyDeletedObjects
    
            {
                get
                {
                    return DeletedObjects;
                }
            }
    
            public void SavePositionOfFood(Spielobjekt ParameterFruitsAndSugar, Spielobjekt referenz)
            {
                if (!FruitsAndSugar.Contains(ParameterFruitsAndSugar))
                {
                    FruitsAndSugar.Add(ParameterFruitsAndSugar);
                }
            }
    
            public Spielobjekt GetPositionOfFood(Spielobjekt ameise)
            {
                foreach (KartesischeKoordinate Position in FruitsAndSugar)
                {
                    Koordinate.BestimmeEntfernung(ameise, Position);
                }
            }
    
        }
    
        class KartesischeKoordinate //Koordinaten Ermitteln und Weitergeben 
        {
    
            private Spielobjekt referenz;
            private int winkel;
            private int entfernung;
            private int x;
            private int y;
    
            public KartesischeKoordinate(Spielobjekt referenz)
            {
                this.referenz = referenz;
            }
    
            public void BerechnePositionAusObjekt(Spielobjekt objekt)//Ermittlet die Koordinaten aus dem bergebenen Spielobjekt
            {
                entfernung =Koordinate.BestimmeEntfernung(referenz, objekt) + 32;//Radius des Baus und Speicherung der polaren Koordinate
                winkel =Koordinate.BestimmeRichtung(referenz, objekt);
                BerechneXY();
            }
    
            public void BerechnePositionAusObjekt(Basisameise objekt)//Overloaded function 
            {
                entfernung =Koordinate.BestimmeEntfernung(referenz, objekt) + 32;
                winkel =Koordinate.BestimmeRichtung(referenz, objekt);
                BerechneXY();
            }
    
            public void BerechnetPositionAusPolarKoordinate(int Winkel, int Entfernung) // Ermittelt Koordinaten aus der bergebenen polaren
            {
                entfernung = Entfernung;
                winkel = Winkel;
                BerechneXY();
            }
    
            public void BerechnePositionAusKartesischenKoordinaten(int X, int Y)
            {
                x = X;
                //Speicherung der Koordinaten 
                y = Y;
                BerechneWE();
            }
    
            private void BerechneXY() //Berechnet X und Y aus vorhandener Polarkoordinate 
            {
                double bogen = ((double)winkel / 180) * Math.PI;
                x = (int)Math.Cos(bogen) * entfernung;
                y = (int)Math.Sin(bogen) * entfernung - 1;
            }
    
            private void BerechneWE() //Winkel ber Atan ausrechnen und Positiv machen 
            {
                winkel = (int)Math.Round(Math.Atan2(y, x));
                winkel = (winkel + 360) % 360;
                entfernung = (int)Math.Round(Math.Sqrt(x * x + y * y)); //Pythagoras 
            }
    
    
            public int X //x Kartese 
            {
                get
                {
                    return x;
                }
            }
    
            public int Y //y Kartese 
            {
                get
                {
                    return y;
                }
            }
    
            public int Winkel
            {
                get
                {
                    return winkel;
                }
            }
    
            public int Entfernung
            {
                get
                {
                    return entfernung;
                }
    
            }
    
        }


    Donnerstag, 2. Februar 2012 11:29

Antworten

  • Hi neinmeinname,

    es macht keinen Sinn, dich immer wieder mit neuen Benutzernamen hier anzumelden und Fragen zu stellen, bei denen Du irgendeinen vorgekauten Code postest, ohne dir mal zumindest ansatzweise Gedanken über den Code und seine Funktionsweise zu machen.

    Beichte deinem Lehrer, dass Du bisher gar nichts gemacht hast (wie in deinem anderen Posting von dir ja auch geschrieben), dann wird er dir, wenn er gut gelaunt ist, sicher nochmal einiges erklären. Denn so ganz ohne Grundkenntnisse wird das hier nix.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 2. Februar 2012 11:51
    Moderator

Alle Antworten

  • Hi neinmeinname,

    es macht keinen Sinn, dich immer wieder mit neuen Benutzernamen hier anzumelden und Fragen zu stellen, bei denen Du irgendeinen vorgekauten Code postest, ohne dir mal zumindest ansatzweise Gedanken über den Code und seine Funktionsweise zu machen.

    Beichte deinem Lehrer, dass Du bisher gar nichts gemacht hast (wie in deinem anderen Posting von dir ja auch geschrieben), dann wird er dir, wenn er gut gelaunt ist, sicher nochmal einiges erklären. Denn so ganz ohne Grundkenntnisse wird das hier nix.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 2. Februar 2012 11:51
    Moderator
  • Hi Stefan,

    Du hast recht damit, dass ich mir mehr über die Funktionsweise des Codes im klaren sein sollte. Ich habe den Code hauptsächlich mit Hilfe des AntMe! Lernbuches geschrieben und bin mir daher nicht über allem genau im klaren, deshalb dachte ich mir Poste ich am besten alles.

    Den anderen Post habe ich übrigens garnicht geschrieben und ich habe auch nur den einen Benutzernamen... Trotzdem Danke :)

     

    Montag, 6. Februar 2012 07:13