Werte Vergleichen mit Zuweisung

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Hackt3c.

    Werte Vergleichen mit Zuweisung

    Moin

    Ich Schreibe grade an einem Bakterien Simulator , jetzt gehts grade um die KI und die Futter suche. Das futter sind Pictureboxen ( Später GDI ) sowie die Bakterien es wird also geschaut welche X,Y Kordinaten Näher sind von Futter01 Bis Futter02 zu Futter03 usw.. nur Brauch ich dafür ne Rückantwort welcher der Werte nun der Kleinste war für das KontrollCenter (Textausgabe) und für mein Code.

    Ich hatte bisher alle Futter Pictureboxen in X,Y Strings Deklariert sowie meine Bakterie.
    Dann habe ich die Futter(1-20 Jeweils) Location val+ gerechnet und den Minus wert replaced damit ich beim vergleich erstmal kein umweg machen muss. *Kann man bestimmt auch direkt umwandeln mit Vergleich X location von 1-20 und Y Location 1-20 naja erstmal egal ^^.

    Nun werden die Werte Verglichen und min und max werden mir ausgespuckt aber eine zuweisung Welches Futter nun es war mit der Geringsten Entfernung


    VB.NET-Quellcode

    1. Dim Array() = {EntfernungFutter1, EntfernungFutter2, EntfernungFutter3, EntfernungFutter4, EntfernungFutter5, EntfernungFutter6, EntfernungFutter7, EntfernungFutter8, EntfernungFutter9, EntfernungFutter10, EntfernungFutter11, EntfernungFutter12, EntfernungFutter13, EntfernungFutter14, EntfernungFutter15, EntfernungFutter16, EntfernungFutter17, EntfernungFutter18, EntfernungFutter19, EntfernungFutter20}
    2. Dim vali1 = Array(0)
    3. Dim vali2 = Array(0)
    4. For i = 1 To Array.Length - 1
    5. vali1 = Math.Max(vali1, Array(i))
    6. vali2 = Math.Min(vali2, Array(i))
    7. Next


    So ich brauch halt nur noch ne Ausgabe welcher dieser Werte vom Array nun der Kleinste ist als Textausgabe dazu wie msgbox("Futter:"+Textausgabe+"Ist mit"vali2+" Pixel Näher dran als die anderen")


    Ich denke mal ihr Wisst hoffe ich wie ich das meine ^^.


    mfg

    Hack

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hackt3c“ ()

    Hackt3c schrieb:

    Ich denke mal ihr Wisst hoffe ich wie ich das meine
    Und wir hoffen mal, Du weißt, was wir meinen, wenn wir sagen: Option Strict On!
    Danach geht es weiter, z.B. mit Array.Max, wobei Array ein ... ausbaufähiger Name ist. Man könnte dann noch mit List(Of Entfernung) anfangen, aber belassen wir es erstmal bei der Fehlerbeseitigung, nachdem Du Dein Projekt auf Option Strict On gestellt hast.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Gute Idee , Ich Löse es einfach anders :)

    VB.NET-Quellcode

    1. Dim Auswahl as Integer = 0
    2. Dim Array() = {EntfernungFutter1, EntfernungFutter2, EntfernungFutter3, EntfernungFutter4, EntfernungFutter5, EntfernungFutter6, EntfernungFutter7, EntfernungFutter8, EntfernungFutter9, EntfernungFutter10, EntfernungFutter11, EntfernungFutter12, EntfernungFutter13, EntfernungFutter14, EntfernungFutter15, EntfernungFutter16, EntfernungFutter17, EntfernungFutter18, EntfernungFutter19, EntfernungFutter20}
    3. Dim vali1 = Array(0)
    4. Dim vali2 = Array(0)
    5. For i = 1 To Array.Length - 1
    6. vali2 = Math.Min(vali2, Array(i))
    7. Next
    8. If Vali2 = EntfernungFutter1 then Auswahl = 1
    9. If Vali2 = EntfernungFutter2 then Auswahl = 2
    10. Usw


    Closed
    Nein, leider nicht <Closed>

    Wie VaporiZed schon geschrieben hat, solltest du im Menü unter <Projekt><Eigenschaften> den Punkt "Option Strict" unbedingt auf "ON" stellen. Ansonsten wirst du bei größeren Projekten, wie es bei dir der Fall zu sein scheint, deines Lebens nicht mehr froh, denn du produzierst sehr fehleranfälligen Code.

    Wer garantiert dir denn, dass du mit "Dim vali1 = Array(0)" tatsächlich auf dein "Dim Array()" zugreifst?
    Wie gesagt es Funktioniert nun :)

    Bakterie kann nun Futter entfernung ausrechnen und Koordiniert drauf zu steuern.

    Dadurch das ich ich nicht alles in der Function dim sondern Zwischen form und class.
    Und dann in der function die zuweisung gebe

    Jede Bakterie hat sein eigenes Steuermodul und co.