1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoiter

Beiträge von autoiter

  • Frohes Weihnachtsfest

    • autoiter
    • 22. Dezember 2020 um 18:43

    Schönes Gedicht Oscar. Ich wünsche euch allen wenig Stress und schon mal schöne Feiertage.

  • Fehlerhafter Algorithmus - bleibt in der Endlosschleife hängen

    • autoiter
    • 12. Dezember 2020 um 16:07

    Oh Mann. Ich hatte mir das Array dann auch nochmal angeschaut und gesehen, das du recht hattest. Wenn ich die ersten beiden Zeilen lösche oder nur bis 2 runter gehe, funktioniert das Skript bei mir auch :rolleyes:

    Danke dir Bitnugger.

  • Fehlerhafter Algorithmus - bleibt in der Endlosschleife hängen

    • autoiter
    • 12. Dezember 2020 um 15:48

    Hi Bitnugger

    Okay, die zwei Sätze hätte ich klarer schreiben können. Ja, es gibt sechs Minen und ich möchte meine Arbeiter möglichst effizient aufteilen, damit möglichst viele Rohstoffe produziert werden. Vielen Dank für den Hinweis.

    Ich gehe bis 0, weil ich nach dem Einlesen das erste Element gelöscht habe und die Überschriften nicht mehr im Array sind - ist natürlich unnötig. EDIT: Ja, gerade gesehen dass da ja zwei Überschriften Spalten sind. Also ist 0 wirklich Quatsch.

    Zur Liste. Sie zeigt auch noch die Aufteilung innerhalb einer Mine und was da produziert wird.

    Das möchte ich dann später auch anzeigen und die effizienteste Variante anhand der Spalte mit der Produktion pro Tag pro Arbeiter ermitteln.
    Aber eigentlich ist für meinen ersten Schritt nur die erste Spalte wichtig denke ich. Da stehen die benötigten Arbeiter drin.
    Bei dem Spiel ist es so, dass ich nach und nach immer mal ein paar Arbeiter bekomme und die dann einsortieren muss. Dabei möchte ich wenn möglich in jeder Mine immer eine Aufteilung haben, die ich auch in der Liste finden kann.

  • Fehlerhafter Algorithmus - bleibt in der Endlosschleife hängen

    • autoiter
    • 12. Dezember 2020 um 13:00

    Hi Leute,
    schon mit dem Titel war ich mir nicht sicher.. Gerne werden Vorschläge angenommen, den zu verbessern.

    Ich spiele ein Spiel, in dem es einen idle Part gibt. Man hat Arbeiter und teilt sie in Minen ein. Man hat insgesamt 6. Ich möchte sie möglichst effizient verteilen und mir die beste Aufteilung anhand der Anzahl meiner Arbeiter anzeigen lassen.

    Nun habe ich eine Liste, mit möglichen Verteilungen von Arbeitern. Da wollte ich mir erst einmal alle möglichen Verteilungen in ein Array schreiben und später nach Effizienz sortieren.

    Ich scheitere gerade daran, mir überhaupt die möglichen Verteilungen anzeigen zu lassen. In der ersten Spalte der csv Datei steht die Anzahl der benutzten Arbeiter.
    Mein Gedanke war, ich gehe die Liste von unten durch. Sowie ich einen Eintrag erreiche, der >= die Anzahl meiner Arbeiter ist, gehe ich die Liste von diesem Punkt an immer wieder durch und ziehe die Anzahl von meinen zur Verfügung stehenden Arbeitern ab, bis ein Rest < 4 entsteht.

    Was ich dann aber geschrieben habe, kommt nicht aus der Endlosschleife heraus, sowie ich einen Rest > 4 habe.

    AutoIt
    #include <File.au3>
    #include <Array.au3>
    
    Global $g_iWorkers = 50
    
    _PossibleSetting()
    
    Func _PossibleSetting()
        Local $aDB
        _FileReadToArray("Workers.CSV", $aDB, 0, ";")
        _ArrayDelete($aDB, 0)
    ;~     Exit _ArrayDisplay($aDB)
    
        Local $aResults[10000], $iResultCount = 0, $sResultString = "", _
                $iHit = 0, $iWorkersTemp = $g_iWorkers
    
        For $i = UBound($aDB) - 1 To 0 Step -1
            If $aDB[$i][0] <= $g_iWorkers Then
                $iHit = $i
                While $iWorkersTemp > 3
                    For $ii = $iHit To 0 Step -1
                        ConsoleWrite("$iHit= " & $iHit & @LF)
                        If $aDB[$ii][0] <= $iWorkersTemp Then
                            $iHit = $ii
                            $iWorkersTemp -= $aDB[$ii][0]
                            $sResultString &= $ii & ","
    
                            ConsoleWrite("$iWorkersTemp= " & $iWorkersTemp & @LF)
                            ConsoleWrite(" $aDB[$ii][0]= " & $aDB[$ii][0] & @LF)
                            ConsoleWrite("$iWorkersTemp - $aDB[$ii][0]= " & $iWorkersTemp & " - " & $aDB[$ii][0] & @LF)
                            ConsoleWrite("$iHit= " & $iHit & @LF)
                            ConsoleWrite("$sResultString= " & $sResultString & @LF)
                            ExitLoop
                        EndIf
                    Next
                WEnd
                $sResultString &= "Rest " & $iWorkersTemp
                $aResults[$iResultCount] = $sResultString
                $sResultString = ""
                $iResultCount += 1
                $iWorkersTemp = $g_iWorkers
            EndIf
        Next
    
        ReDim $aResults[$iResultCount + 1]
        _ArrayDisplay($aResults)
    ;~ _ArrayDisplay($aDB)
    EndFunc   ;==>_PossibleSetting
    Alles anzeigen

    Ich bin sicher ihr könnt mir da schnell helfen. Über Einschätzungen, ob man das besser ganz anders angeht, würde ich mich auch freuen.

    EDIT: Die angehängte csv hat die Endung zip, damit sie angehängt werden konnte. Einfach entfernen.

    Dateien

    Workers.CSV.zip 184,6 kB – 619 Downloads
  • Am Tablet programmieren

    • autoiter
    • 6. Oktober 2020 um 09:04

    Verstehe. An so ein Szenario habe ich gar nicht gedacht. ^^ Leuchtet ein.

  • Am Tablet programmieren

    • autoiter
    • 5. Oktober 2020 um 20:18

    Machst du das wirklich? Schreibst du dort längeren Code und sendest den dann an deinen PC, um den Code dort auszuführen?

  • Validierung über JavaScript

    • autoiter
    • 4. Oktober 2020 um 22:16

    Nein, ich dachte innerhalb deines this Blocks nur an event.value.padStart(10, "0") oder auch anstelle des ganzen this.getField("Ausgabefeld_1").padStart(10, "0").
    Ich denke das müsste klappen.

  • Einseitg / zehn-seitig

    • autoiter
    • 4. Oktober 2020 um 22:10

    Alina Schreib das immer zusammen. Wenn das markiert wird, ist die Rechtschreibsoftware nicht so gut.

    EDIT: Also ein siebenundzwanzigseitiges Dokument oder ein 27-seitiges Dokument.

  • Validierung über JavaScript

    • autoiter
    • 4. Oktober 2020 um 22:07

    Hey Alina,
    das ist ganz normales JavaScript.
    Probiere doch mal event.value.padStart(10, "0") bzw event.value.padStart(10, "X")

  • Validierung über JavaScript

    • autoiter
    • 4. Oktober 2020 um 13:50

    In JavaScript geht es auch so:

    Code
    value = "99999";
    
    console.log(value.padStart(10, "0"));
    console.log(value.padStart(10, "X"));
  • Validierung über JavaScript

    • autoiter
    • 4. Oktober 2020 um 00:40

    Alina hattest du den Code wieder entfernt? Also sowohl in AutoIt (StringFormat) als auch JavaScript (String.padStart) sind das Einzeiler.

  • Spielt ihr Online Spiele?

    • autoiter
    • 26. September 2020 um 15:05

    Klar, weißt du doch. :D Wobei ich sagen muss, dass ich es nochmal machen muss. Ich habe das Notebook gewechselt und seitdem nur noch am Handy gedaddelt. Da gibt es einige Pseudo Klone. Aber nichts ist das richtige.. Sehr schöne Liste übrigens :)

  • Spielt ihr Online Spiele?

    • autoiter
    • 25. September 2020 um 21:02

    Vor allem offline Spiele, wenn es um alte Spiele geht. HoMM III rules. Nicht wahr @Musashi :D

  • Visible Tray Icon

    • autoiter
    • 23. September 2020 um 23:19

    Klasse Bitnugger! :thumbup:

  • Visible Tray Icon

    • autoiter
    • 23. September 2020 um 23:12

    Haha, ich habe bis heute immer die Instances durchgezählt. Ich muss erst mal prüfen, ob das bei Win7 anders war. Ansonsten danke dir für den Augenöffner tommii :D

  • File zu array - mit unterschiedliche daten

    • autoiter
    • 23. September 2020 um 23:08

    Hallo Speedy86

    zu deinem Startpost.
    Dein Code würde laufen, wenn du eine weitere For Schleife nach dem StringSplit nutzen würdest (mit Ubound) und darin etwas wie $a2D[$i-1][$ii] füllen würdest, statt blind von fünf Elementen auszugehen..

  • Wie wiederhole ich einen Teil eines Programmablaufs, wenn eine nachfolgende Prüfung ein negatives Ergebnis auswirft?

    • autoiter
    • 23. September 2020 um 22:58

    Warum nicht einfach den Timeout Parameter der Ping Funktion nutzen?

  • Brillante Voraussage !

    • autoiter
    • 1. September 2020 um 20:19
    Zitat von Mars

    Trump bashing never gets old.

    Das ist aber wirklich eine präzise Vorhersage, nicht?

    Prinzipiell ein Problem der Direktwahl oder gerade des amerikanischen Wahlmännersystems, von daher eine valide Annahme, die sich mal erfüllen sollte.

    Ich sehe es aber ähnlich.
    Ich dachte George W. Bush ist mit seinen erfundenen Massenvernichtungswaffen und seinen Kriegen, die eine ganze Region bis heute destabilisieren und für Flüchtlingsströme sorgen, der schlimmste Präsident der USA ever.
    Heute steht er da als einer der seriösen Politiker, die vor den Auswüchsen unter Trump warnen...

  • Noch eine MouseHover-UDF

    • autoiter
    • 1. September 2020 um 19:19

    Hi Oscar

    danke fürs Teilen :)

    Ich finde das sehr schön flexibel gehalten! Das ist wirklich toll.

    Ich finde nicht ganz so gut, dass die UDF keine Funktionsheader hat. Ohne Thread und Example ist sie - trotz ihrer Kürze - so schwer verständlich und für User Call Tip Manager unbrauchbar. Func1 und Func2 für EntryFunc und Func2 für ExitFunc sind als Ersatz auch nicht sprechend.

  • Access starten und maximieren

    • autoiter
    • 24. August 2020 um 16:24

    DDT

    Den Zusammenhang verstehe ich nicht.

    Zitat von DDT

    jedoch muss man im Programm sein damit es sich aktualisiert und da es 2 sind ... hab ich mir das noch geschrieben

    Was hat das Skript mit der Aussage zu tun. Sieht eher wie ein Versuch aus, einen Windows Energiesparplan auszuhebeln..

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™