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. eukalyptus

Beiträge von eukalyptus

  • µit - März

    • eukalyptus
    • 30. April 2009 um 14:11

    Hier sind meine Scripte

    Der logische Solver: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Hier hab ich die Methode_5(hidden pairs/tribbles) abgeschaltet, da sie manchmal fehlerhaft arbeitet!
    Hab das Problem noch nicht gefunden...

    Der reine Backtracker: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    lgE

  • µit - März

    • eukalyptus
    • 22. April 2009 um 23:27

    Na dann werd ich mich auch mal bemühen, etwas Geschwindigkeit gutzumachen ;)

    btw.: ich hab auch ein reines BT-Script geschrieben.
    insgesammt 44 Zeilen
    Man beachte Logisch Nr.: 4 und das leere Sudoku BackTrack Nr.: 10

    Spoiler anzeigen
    Code
    Sudoku Logisch 1 Richtig - Benötigte Zeit: 62.6152206495518
    Sudoku Logisch 2 Richtig - Benötigte Zeit: 23.2518378732493
    Sudoku Logisch 3 Richtig - Benötigte Zeit: 38.6174779196797
    Sudoku Logisch 4 Richtig - Benötigte Zeit: 20.3076089279503
    Sudoku Logisch 5 Richtig - Benötigte Zeit: 30.7047404069512
    Sudoku Logisch 6 Richtig - Benötigte Zeit: 5525.45980005839
    Sudoku Logisch 7 Richtig - Benötigte Zeit: 773.753926825896
    Sudoku Logisch 8 Richtig - Benötigte Zeit: 7149.75506663556
    Sudoku Logisch 9 Richtig - Benötigte Zeit: 2557.18925170657
    Sudoku Logisch 10 Richtig - Benötigte Zeit: 5812.10405233067
    
    
    Ergebnis Logisch: Zeit gesammt: 21993.7589833345 Zeit Durchschnitt: 2199.37589833345
    
    
    Sudoku Backtrack 1 Richtig - Benötigte Zeit: 1765275.2981175
    Sudoku Backtrack 2 Richtig - Benötigte Zeit: 3151.57373353317
    Sudoku Backtrack 3 Richtig - Benötigte Zeit: 1263.15970325838
    Sudoku Backtrack 4 Richtig - Benötigte Zeit: 12333.7896296876
    Sudoku Backtrack 5 Richtig - Benötigte Zeit: 6219.82486600951
    Sudoku Backtrack 6 Richtig - Benötigte Zeit: 4814.80635108652
    Sudoku Backtrack 7 Richtig - Benötigte Zeit: 186393.929954785
    Sudoku Backtrack 8 Richtig - Benötigte Zeit: 3464.58753836032
    Sudoku Backtrack 9 Richtig - Benötigte Zeit: 3146.24987253967
    Sudoku Backtrack 10 Richtig - Benötigte Zeit: 194.844596170742
    
    
    Ergebnis Logisch: Zeit gesammt: 21993.7589833345 Zeit Durchschnitt: 2199.37589833345
    Ergebnis Backtrack: Zeit gesammt: 1986258.06436293 Zeit Durchschnitt: 198625.806436293
    Ergebnis gelöste Sudokus: 20
    Alles anzeigen


    Jedoch für BT Nr.:1 braucht der Algo fast 30 min :thumbdown:
    und das haut mir den ganzen Schnitt zusammen...

    lgE

  • µit - März

    • eukalyptus
    • 22. April 2009 um 11:48

    Dafür, daß es sich um den März-Wettbewerb handelt, einigen wir uns doch ziemlich bald :rofl:

    Wer macht eigentlich die Auswertung?
    Dieser Jemand soll dann Sudokus für die Analyse auswählen.
    Und auch entscheiden, nach welchen Kriterien bewertet werden soll.

    Ich denke, es wird keinen "besten" Solver geben, sondern mehrere...
    Den Solver mit der schönsten Strategie (unabhängig von der Geschwindigkeit)
    Den Solver, der im Durchschnitt am schnellsten löst
    Den programmiertechnisch schnellsten Solver
    Den schönsten, reinen Backtracker
    usw...

    Und daraus kombinieren wir dann die besten Elemente zu einem gescheiten Solver.

    lgE

  • Wie realisiert man am besten Multitasking(kein multithreading)

    • eukalyptus
    • 21. April 2009 um 22:30

    Anwendungsbeispiele gibt es genügend

    Ich hab mal ein Programm geschrieben, welches den Soundkarteninut als mp3 aufnimmt, gleichzeitigt zu einem Icecastserver streamt, wärend ein Webcambild mit Logo versehen wird und via http-post hochgeladen wird.

    Wenn nun die Internetverbindung grad nicht so richtig will, geraten Stream und Webcamupload etwas ins stocken und würden das gesammte Script bremsen.

    Deshalb ist jedes Programm ein eigenes Script, die trotzdem alle miteinander kommunizieren müssen.

  • Wie realisiert man am besten Multitasking(kein multithreading)

    • eukalyptus
    • 21. April 2009 um 20:38

    Siehe dazu im englischen Forum:
    http://www.autoitscript.com/forum/index.php?showtopic=88886

    lgE

  • Compiled Autoit script soll Output an STDOut übergeben

    • eukalyptus
    • 21. April 2009 um 18:47

    Das geht mit ConsoleWrite

    lgE

  • Hacker gesucht!

    • eukalyptus
    • 19. April 2009 um 05:25

    Hier im Forum findest du auch einige.

    z.B.: Eins vom Xeno - Such mal nach Secure bzw. gina hook

    lgE

  • Kollisionen von Bildern/GDIPlus erkennen

    • eukalyptus
    • 17. April 2009 um 15:40

    Hi

    Schau dir mal die GDI+ Beispiele von Uez im englischen Forum an.
    Da ist mindestens eines dabei, wo Bälle miteinander kollidieren und sich gegenseitig beschleunigen...

    lgE

  • Hacker gesucht!

    • eukalyptus
    • 17. April 2009 um 10:59

    Auch will ;)

  • MathEx UDF

    • eukalyptus
    • 17. April 2009 um 07:14

    Eine Primzahl ist nur durch 1 und sich selbst teilbar - und das trifft auf 1 völlig zu ;)

    Vielleicht hilft eine Flag-Option weiter, wo man selbst entscheiden kann, ob 1 nun eine Primzahl ist oda nicht ;)

    lgE

    EDIT: *klugscheiß off*

  • Rechnen mit Kommazeichen.

    • eukalyptus
    • 16. April 2009 um 15:20

    Dann müßte man die Variablen in einer Funktion mit Punkt trennen

    z.b.: Modulo der Zahlen 3,4 und 2,1:

    [autoit]

    Mod(3,4.2,1)

    [/autoit]


    Wie sieht das erst aus :rofl:

    lgE

  • Rechnen mit Kommazeichen.

    • eukalyptus
    • 16. April 2009 um 14:55

    Eben nicht!

    In der englischen Schreibweise wird das Komma als Tausendertrennzeichen verwendet und der Punkt als Dezimalstellentrennzeichen.

    In Programmiersprachen kann man auch deshalb kein Komma benutzen, da es schon einem anderen Zweck dient.

    lgE

  • Rechnen mit Kommazeichen.

    • eukalyptus
    • 16. April 2009 um 14:22
    Zitat von nuts

    ...Komma abtrennen und nicht mit einem Punkt (wo gibts denn sowas?).

    Verlangen nicht alle Programmiersprachen einen Punkt bei Dezimalstellen?!
    weil englische Schreibweise...

    lgE

  • Nur bestimmte Eingaben in GuiCtrlCreateInput zulassen. Wie?

    • eukalyptus
    • 16. April 2009 um 13:54

    Hi

    Du mußt GuiCtrlRead innerhalb der Funktion ausführen:

    [autoit]

    Local $len = StringLen(GUICtrlRead($enter_id))

    [/autoit]


    sonst hat $Len immer den Anfangswert...

    lgE

  • Grafikfehler

    • eukalyptus
    • 16. April 2009 um 11:10

    Wenn du jedem Control eine Hintergrundfarbe zuweist, dann gehts.

    Ich glaube auch, daß das ein Bug ist...

    lgE

  • Nur bestimmte Eingaben in GuiCtrlCreateInput zulassen. Wie?

    • eukalyptus
    • 16. April 2009 um 10:50

    Hi

    Vielleicht so?

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WinAPI.au3>
    #include<WindowsConstants.au3>
    #include <EditConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGui, $hInput1, $hInput2, $hInput3, $hLabel

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate("Test", 420, 200)
    $hInput1 = GUICtrlCreateInput("1234", 10, 10, 400, 20, $ES_NUMBER)
    GUICtrlSetLimit(-1, 4)
    $hInput2 = GUICtrlCreateInput("http://www.autoit.de", 10, 40, 400, 20)
    $hLabel = GUICtrlCreateLabel("", 10, 70, 100, 20)
    $hInput3 = GUICtrlCreateInput("123ABCabc", 10, 110, 400, 20)
    GUISetState()
    _CheckUrl()

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    Sleep(5)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndInput2, $hWndInput3
    If Not IsHWnd($hInput2) Then $hWndInput2 = GUICtrlGetHandle($hInput2)
    If Not IsHWnd($hInput3) Then $hWndInput3 = GUICtrlGetHandle($hInput3)
    $hWndFrom = $ilParam
    $iIDFrom = _WinAPI_LoWord($iwParam)
    $iCode = _WinAPI_HiWord($iwParam)
    Switch $hWndFrom
    Case $hInput3, $hWndInput3
    Switch $iCode
    Case $EN_UPDATE ; Sent when an edit control is about to redraw itself
    _CheckString()
    EndSwitch
    Case $hInput2, $hWndInput2
    Switch $iCode
    Case $EN_UPDATE ; Sent when an edit control is about to redraw itself
    _CheckUrl()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckUrl() ;pattern from http://www.osix.net/modules/article/?id=586
    Local $sPattern = "^(https?://)" & _
    "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" & _; //user@
    "(([0-9]{1,3}\.){3}[0-9]{1,3}" & _; // IP- 199.194.52.184
    "|" & _; // allows either IP or domain
    "([0-9a-z_!~*'()-]+\.)*" & _; // tertiary domain(s)- www.
    "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." & _; // second level domain
    "[a-z]{2,6})" & _; // first level domain- .com or .museum
    "(:[0-9]{1,4})?" & _; // port number- :80
    "((/?)|" & _; // a slash isn't required if there is no file name
    "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"
    Local $sUrl = GUICtrlRead($hInput2)
    If StringRegExp($sUrl, $sPattern) Then
    GUICtrlSetData($hLabel, "URL korrekt")
    GUICtrlSetBkColor($hLabel, 0x00FF00)
    Else
    GUICtrlSetData($hLabel, "URL nicht korrekt")
    GUICtrlSetBkColor($hLabel, 0xFF0000)
    EndIf
    EndFunc ;==>_CheckUrl

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckString()
    Local $sString = GUICtrlRead($hInput3)
    GUICtrlSetData($hInput3, StringRegExpReplace($sString, "[^a-zA-Z0-9]", ""))
    EndFunc ;==>_CheckString

    [/autoit]

    lgE

  • Plug-In Schnittstelle

    • eukalyptus
    • 13. April 2009 um 12:17

    Du könntest Schleifen mit einem "Goto" realisieren.

    Mehrzeilige Befehle wie:
    If...Endif
    While...WEnd
    Do...Until
    usw...
    werden wahrscheinlich nicht zu machen sein.

  • MathEx UDF

    • eukalyptus
    • 12. April 2009 um 20:16

    Diese Aufgabe ist aus dieser Projekt-X Radiosendung (FM4):
    http://fm4-archiv.at/details.php?file=257
    und ist sehr zu empfehlen :thumbup:
    (anm: teilw. österreichischer Dialekt...)

  • MathEx UDF

    • eukalyptus
    • 12. April 2009 um 19:34

    Yep, Pi find ich auch cool!

    Bei _MathEx_IsDivisible konnte man auch

    [autoit]

    If Mod($integer_number_mathex_dividend,$integer_number_mathex_divisor)=0 Then

    [/autoit]


    verwenden...

    Aufgabe:
    Ein Schusterbetrieb hat im Jahr 15€ Umsatz. Wieviel Umsatz hat er in 2 Jahren, wenn der Umsatz pro Jahr gleich bleibt ;)
    (projekt x / fm4)

    lgE

  • µit - März

    • eukalyptus
    • 11. April 2009 um 18:06

    BackTrack:

    Man probiert für jedes Feld jede mögliche Zahl und überprüft, ob diese Zahl den Regeln entspricht (darf nur 1 mal in einer Reihe vorkommen usw.)
    Wenn dies nicht der Fall ist, dann 1 Schritt zurück.
    Diese Funktion sollte (muß) rekursiv sein.
    Wenn man mit Hilfe der logischen Algo´s die Anzahl der Möglichkeiten schon reduziert hat, dann ist auch der BT-Algo schneller...

    Zur Geschwindigkeit allgemein: Man hat doch für jedes Feld eine Variable, welche die noch möglichen Zahlen beinhaltet.
    Dazu kann man einen String oder ein Array nehmen; Oder auch eine andere Möglichkeit, wie ich sie verwende (wird aber noch nicht verraten ;))
    Hier kann man viel Geschwindigkeit rausholen.

    lgE

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™