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

Beiträge von CodeFixer

  • GDI+ richtig verwendet?

    • CodeFixer
    • 7. September 2012 um 17:59

    Hab den Algorithmus in einer Vorlesung an der Princeton University kennengelernt. Als Anwendungsbeispiel wurde ein Stein genannt, der durchlöchert wird. Wann ließt Wasser durch den Stein, weil es eine durchgehendes Loch hat?

    So hab ich mir gedacht, machst du das mal als Autoit Skript. Kann man natürlich auch für das Spiel "Hex" verwenden.

  • GDI+ richtig verwendet?

    • CodeFixer
    • 6. September 2012 um 17:39

    name22: Interessant wieviel man da noch rausholen kann. Danke!

    hauke96: Die Labels kommen nachher raus, sind nur zum Testen. D.h. den Geschwindigkeitsbooster gibts auch noch oben drauf. :)

  • GDI+ richtig verwendet?

    • CodeFixer
    • 6. September 2012 um 17:25

    Wow, vielen Dank! Das reicht mir von der Geschwindigkeit :D

    Habe gerade mal gemessen. Bei 40.000 Blöcken wird der Weg von oben nach unten im Durchschnitt bei 1000 Testläufen, innerhalb von 0.017219 Millisekunden gefunden !! :thumbup:

  • GDI+ richtig verwendet?

    • CodeFixer
    • 6. September 2012 um 17:01

    Vielen Dank schonmal, ich werds gleich mal testen.

    GUICtrlCreateGraphics hatte ich vorher und das Script war gefühlte 100 mal langsamer :D

  • GDI+ richtig verwendet?

    • CodeFixer
    • 6. September 2012 um 16:44

    Hi,

    ich habe folgendes Skript, das viele kleine Blöcke zeichnet mit _GDIPlus_GraphicsFillRect(). Das Ganze ist jedoch recht langsam, obwohl ich GDI+ verwende. Vielleicht mache ich etwas falsch beim Zeichen ..

    Kurz zum Skript selbst. Der rote Block wird solange "durchlöchert", bis es einen Weg vom oberen schwarzen Balken zum unteren schwarzen Balken gibt. Also eine durchgehende Verbindung.

    Das Ganze sieht dann so aus: [Blockierte Grafik: http://cl.ly/image/0I1u163q3P2D/Aufzeichnen.PNG]

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Timers.au3>

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

    Global $n = 50
    Global $components = $n * $n
    Global $id[$components]
    Global $cells[$n][$n]
    Global $Graphics[$n][$n]
    Global $tsample = 10000000
    Global $thr = 0.592746
    Global $time = 0
    Global $akt_thr = 0

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

    $fac = 5
    $Form = GUICreate("Simulation {" & $n * $n & "}", $n * $fac, $n * $fac + 50, 100, 100)
    $Label_Comp = GUICtrlCreateLabel("Components: " & $components, 10, $n * $fac + 10, 200, 17)
    $Label_CT = GUICtrlCreateLabel("Cur. Threshold: 0", 10, $n * $fac + 30, 200, 17)
    $Label_T = GUICtrlCreateLabel("Time converge: ", 120, $n * $fac + 10, 200, 17)
    GUICtrlSetColor(-1, 0x000080)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()
    $hBrushBlue = _GDIPlus_BrushCreateSolid(0xFFFF0000)
    $hBrushB = _GDIPlus_BrushCreateSolid(0xFF000000)
    For $i = 0 To $n - 1
    For $j = 0 To $n - 1
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form)
    _GDIPlus_GraphicsFillRect($hGraphic, $i * $fac, $j * $fac, $fac, $fac, $hBrushBlue)
    Next
    Next

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

    For $i = 0 To $components - 1
    $id[$i] = $i
    Next

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

    For $k = 0 To $n - 2
    unite(cell($k, 0), cell($k + 1, 0))
    unite(cell($k, $n - 1), cell($k + 1, $n - 1))
    Next
    For $k = 0 To $n - 1
    $cells[$k][0] = True
    $cells[$k][$n - 1] = True
    Next

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

    $t = _simulate()
    ConsoleWrite("treshold: " & (1 * $t / ($n * $n)) & " - t: " & $t & " - time: " & $time & " - akt_thr: " & $akt_thr & @CRLF)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    WEnd

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

    Func _simulate()
    $t = 0
    While True
    Local $stt = _Timer_Init()
    If _root(cell(0, 0), cell($n - 1, $n - 1)) Then Return $t
    _step()
    _show()
    $t += 1
    Local $tsample = _Timer_Diff($stt)
    $time += $tsample
    $akt_thr = ($thr - ($t / ($n * $n))) * $tsample
    GUICtrlSetData($Label_T, "Time converge: " & Round($akt_thr, 2))
    GUICtrlSetData($Label_CT, "Cur. Threshold: " & ($t / ($n * $n)))
    WEnd
    EndFunc ;==>_simulate

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

    Func _show()
    For $r = 0 To $n - 1
    For $p = 0 To $n - 1
    If $cells[$r][$p] Then
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form)
    _GDIPlus_GraphicsFillRect($hGraphic, $r * $fac, $p * $fac, $fac, $fac, $hBrushB)
    EndIf
    Next
    Next
    EndFunc ;==>_show

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

    Func _step()
    Local $m, $h
    While $cells[$m][$h]
    $m = Random(0, $n - 1, 1)
    $h = Random(0, $n - 1, 1)
    WEnd
    $cells[$m][$h] = True
    If $m < $n - 1 And $cells[$m + 1][$h] Then unite(cell($m, $h), cell($m + 1, $h))
    If $m > 0 And $cells[$m - 1][$h] Then unite(cell($m, $h), cell($m - 1, $h))
    If $h < $n - 1 And $cells[$m][$h + 1] Then unite(cell($m, $h), cell($m, $h + 1))
    If $h > 0 And $cells[$m][$h - 1] Then unite(cell($m, $h), cell($m, $h - 1))
    EndFunc ;==>_step

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

    Func cell($i, $j)
    Return $i + $j * $n
    EndFunc ;==>cell

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

    Func _find($x)
    While $x <> $id[$x]
    $id[$x] = $id[$id[$x]]
    $x = $id[$x]
    WEnd
    Return $x
    EndFunc ;==>_find

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

    Func _root($p, $q)
    Return _find($p) == _find($q)
    EndFunc ;==>_root

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

    Func unite($p, $q)
    $i = _find($p)
    $j = _find($q)
    If $i == $j Then Return
    $id[$i] = $j
    $components -= 1
    GUICtrlSetData($Label_Comp, "Components: " & $components)
    EndFunc ;==>unite

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

    Schonmal Danke!

  • Baum speichern

    • CodeFixer
    • 6. September 2012 um 13:09

    Das Problem ist, dass das Array immer unterschiedlich aussieht und ich nicht einfach einen "vorgefertigten" Baum ausgeben kann.

  • Baum speichern

    • CodeFixer
    • 6. September 2012 um 00:44

    Hey Community,

    ich habe z.B: folgendes Array, das einen Baum darstellt:

    [autoit]


    Dim $a[16]

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

    #cs
    $i - $a[$i]
    0 - 0
    1 - 0
    2 - 0
    3 - 0
    4 - 4
    5 - 0
    6 - 6
    7 - 7
    8 - 0
    9 - 0
    10 - 0
    11 - 12
    12 - 0
    13 - 8
    14 - 10
    15 - 8
    #ce

    [/autoit]

    [Blockierte Grafik: http://cl.ly/image/0N0s2b1m2Z0x/Baum.png]


    Ich würd das Array gerne so wie oben in der Console ausgeben. Mein Ansatz wäre jetzt rekursiv an jedem Knoten anzusetzen, aber so funktioniert das nicht, da ich nicht weiß wie ich das mit den Zeilenumbrüchen realisieren soll. Bei meinem Ansatz würde das alles in einer Zeile oder über mehrere Zeilen, nicht annähernd als Baum, ausgegeben werden.

    Hoffe ihr könnt mir vielleicht einen richtigen Ansatz geben. Danke schonmal! ;)

  • Ameise (Turingmaschine)

    • CodeFixer
    • 12. August 2012 um 22:43

    Ich hab mal "Conways Game of Life" umgesetzt: Link Hier

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 18:09

    Erriechen lässt sich sowas nicht.

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 18:04

    Im ersten Post schreibst du noch ob überhaupt Interesse daran besteht. Im Laufe des Threads wird darüber gesprochen und ich gebe ledigliche die Info, wie man das Projekt gut managen kann. Ich dachte nämlich nicht an ein "rumeiere eines Einzelnen" in diesem Projekt, sondern ein offenes Projekt an dem mehrere mitmachen. Nunja man kann sich auch jeden Infos verschließen und gleich das negative darin suchen, warum postet du es dann!

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 17:51
    Zitat

    Das mach ich doch gerade -.-

    Und?

    @progandy: Ja da hast du hast recht. Ich hatte mir selbst Wiki noch nicht angesehn.

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 17:02

    Was ich gedacht hatte, wäre eine eigene Seite auf der alle UDFs vorhanden sind. Eben eine Datenbank aus UDFs mit logischerweise einem Downloadlink der UDF.

    Edit: [Blockierte Grafik: http://s7.directupload.net/images/110928/bhg8bqsf.png]

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 16:51

    Off-Topic: Sorry für Doppelpost, aber der Edit-Buttonlink lädt nicht.

    Also für die Projektverwaltung würde ich einen kostenlosen Onlineservice wie diesen http://www.autarchic.net/ vorschlagen.

  • UDF-Portal?

    • CodeFixer
    • 28. September 2011 um 16:44

    Also ich würde mich nochmal "rantrauen", allerdings habe ich nebenher noch mein Studium. Sollte jedoch kein allzu großes Problem darstellen. Falls wir anfangen würden, wäre es angebracht erstmal ein gutes System für die Projektplanung und dem Management zu finden. Daran ist nach meiner Erfahrung immer gescheitert.

  • [Tutorial] Login + Registrierung über eine MySql-DB [+ Hilfedateien]

    • CodeFixer
    • 30. August 2011 um 13:53

    Der Text aus der MsgBox lässt sich leicht zurückverfolgen. Gehst du auf die Seite der login.php und schaust dir den Quelltext an, so siehst du:

    Code
    0<script type="text/javascript">
    
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-16106315-4']);
      _gaq.push(['_setDomainName', '.funpic.de']);
      _gaq.push(['_trackPageview']);
    
    
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript';
    ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
    'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
      })();
    
    
    </script>
    Alles anzeigen


    Funpic scheint wohl neuerdings einen Javacode mit auszugeben, der laut dem Quellcode, eine Statistik füttert (".google-analytics.com").


    Wenn du den Link manuell eingibst und den Benutzer und das Passwort anhängst was wird dann ausgegeben?
    Also

    Code
    http://holybotting.ho.funpic.de/login.php?benutzername=test&passwort=???
  • [Tutorial] Login + Registrierung über eine MySql-DB [+ Hilfedateien]

    • CodeFixer
    • 30. August 2011 um 12:51

    Zu Maui:

    Dein Fehler liegt einfach nur darin, dass du die falsche Internetadresse zur PHP-Datei angibst. Du darfst logischerweise nicht den "ftp"-Pfad angeben, da dort Rechte benötigt werden. Stattdessen musst du "http" verwenden und alles klappt.

    Ist also ein Fehler eurerseits. Ich hoffe ich konnte helfen ...

  • Monoskopischer 3-Dimensionaler Oberflächenscanner

    • CodeFixer
    • 20. August 2011 um 15:17

    Also imoment befinde ich mich noch etwas im Glaskugelmodus, auch weil ich nicht alle Posts gelesen habe, aber es gibt für 2,60 Euro Infrarot-Entfernungsmesser. Die zurückgelieferten Daten können besser verwendet werden.

  • Wohngemeinschaftsnetzwerk

    • CodeFixer
    • 14. August 2011 um 23:54

    Hi Community,

    ich weiß, dass es hier einige gibt, die sich gut mit "Netzwerken" auskennen. Ich hab da eher weniger Ahnung, auch wenn es ja eigentlich nicht so schwer ist.

    Mein Problem ist folgendes. Wir sind in einer WG 3 Leute mit jeweils seinem eigenen Rechner. Ein Bild:

    [Blockierte Grafik: http://img189.imageshack.us/img189/8682/wgplan.png]

    Mir geht es im Bild um das "?". Was sollte ich dort einsetzten. Einen Server, quasi einen eigenen Pc, oder nur eine Festplatte, aber dann würde das mit dem Display/Bildschirm nicht mehr klappen. Zudem die Frage, sind alle 3 Pc's als Netzwerk verknüpft, sodass man Netzwerkspiele einrichten könnte?

    Danke schonmal!

  • JavaScript RegEx Problem

    • CodeFixer
    • 23. Mai 2011 um 23:13

    Problem was solved.

  • JavaScript RegEx Problem

    • CodeFixer
    • 23. Mai 2011 um 18:22

    Hi,

    habe ein Problem mit RegEx-Pattern in JavaScript.

    Ich übersetze zur Zeit Autoit für einen Online Highlighter, damit Autoit durch diesen gehighlightet werden kann. Es gibt eine Funktion "highlightWhile(<RegEx-Pattern wird erfüllt>)".

    Für diese Funktion brauche ich nun ein RegEx-Pattern, das die Autoit MultiLine-Kommentare highlightet. Ein Beispiel:

    Spoiler anzeigen


    $start = "kojij";

    @ScriptDir

    #cs Hier ist der Anfang des
    MultiLine-Comments, das
    gehighlightet werden sollte ...

    #ce hier ist kein Kommentar mehr

    #cs Hier ist der Anfang des
    MultiLine-Comments, das
    gehighlightet werden sollte ...

    #comment-end hier ist kein Kommentar mehr

    ; Kommentar

    Abs True While

    Case $GUI_EVENT_CLOSE

    Das Pattern muss also bei Erreichen von "#ce" oder "#comment-end" fehlschlagen. Bitte nicht wundern, warum ich #cs bzw. comment-start nicht gehighlightet haben möchte, das wird einfach durch eine andere "Keyword"-Funktion gehighlightet.

    Danke schonmal!

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™