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

Beiträge von Andy

  • Botproblem verringern - Idee

    • Andy
    • 8. April 2009 um 14:20
    Zitat

    Es geht darum, daß wir die Leute loswerden wollen, die ganz schnell einen bot wollen und sich nur deshalb hier anmelden.
    Wer sich hier anmeldet, an Autoit Interesse zeigt und konstruktiv mitarbeitet, wird dadurch in kurzer Zeit genug lernen um sich einen bot zu schreiben.
    Aber dann hat er es sich auch verdient.


    fullack!

    Derjenige, der sich hinsetzt um größtenteils selbstständig einen guten und lauffähigen Bot zu schreiben der von den diversen Spiele-Anbietern NICHT erkannt wird ist sowieso nicht das Problem. Bei diesen leuten ist meist genug Hirnschmalz für eine ordentliche Ausdrucksweise und ein Verständnis für strukturierte (Arbeits-)Abläufe vorhanden. Also ideale Vorraussetzungen für ein Forenmitglied^^. Denn es wird nicht beim coden für Bots bleiben....

  • Multi Core CPU Auslast

    • Andy
    • 7. April 2009 um 13:38

    Hi,
    in der c´t 7/2009 ist ab Seite 102 ein Artikel zu diesem Thema, u.a. ist auch das Vorgehen zum Verteilen von Threads auf die verschiedenen Kerne beschrieben.

    ciao
    Andy

  • Botproblem verringern - Idee

    • Andy
    • 7. April 2009 um 13:24

    Hallo zusammen,

    zzt. ist es doch noch relativ harmlos.
    Kiddie spielt WorldOfRoXXor o.ä, und kommt weder beim virtuellen Schwanzvergleich, noch bei dem Spielkönnen auch nur halbwegs hinterher. Früher beim "Mensch ärgere dich nicht" kompensierte man das mit Schummeln, heutzutage online benutzt man dazu Bots. Ein Kumpelkiddie erzählt von diesen Bots, aber die richtig guten kosten 5 Euro in der Bucht. Das ist entschieden zu viel! Was für eine Unverschämtheit, dass jemand für seine Arbeit auch noch ECHTES Geld haben möchte! Also setzt sich Kiddie lieber stundenlang vor die Glotze um nach vergeblicher Sucherei mit den immer wieder falschen Suchanfragen und Rechtschreibfehlern bei Tante kuuugel vom Kumpelkiddie den Verweis auf div. Botcoderforen zu erhalten.
    Dort angekommen trifft der Hammer der Gerechten, denn auch dort gibts nix kostenlos und vor allem muss man selbst was tun um einen Bot zu schreiben.
    Kiddie kopiert sich also alles aus dem Inet womit man Bots coden könnte und landet schliesslich auf den Seiten von ProBotCoderSupport-Online.ru.vu.de und bekommt dort nach Angabe von Acountname und Passwort von WorldOfRoxxor endlich den wirklich absolut virenfreien (isch schwör alda!) Angelbot zum downloaden. Sogar mit dokumentiertem Sourcecode! Diesen Bot kann man mit nur einer Handvoll zusätzlichen Funktionen in einen RundumdieUhr (heute heisst das glaube ich 24/7) Farmbot umbauen. DAS kann Kiddie natürlich auch! Aber weder die arme gequälte Tante noch die RoXXor-Kumpel von ProBotCoderSupport-Online.ru.vu.de können mit dem rechtschreibfehlerschwangeren und satzzeichenlosen Geschwafel irgendetwas anfangen und verweisen auf ein Forum, dessen Mitglieder RICHTIG viel Ahnung vom Programmieren haben.
    Allerdings ist dieses Forum in Englisch.....umpft....Kiddie kann ja nichtmal richtig Deutsch. Und Hilfedateien und Tutorials sind sowieso nur für NOOBs. Also wieder zurück zu ProBotCoderSupport-Online.ru.vu.de und da gibts den ultimativen Tip zu einer Seite namens WehWehweh.AutoIt.deEH.
    Hier angekommen wimmelt es von Procodern, die den ganzen Tag wartend vor der Tastatur sitzen um SOFORT auf JEDE wie auch immer gestellte Frage KOSTENLOS die immer richtige ANTWORT zu geben. Entzifferung des Kauderwelschs in der Frage natürlich inbegriffen. Die meisten schreiben einem hier sogar die kompletten Scripte, also genau das, wovon Kiddie schon seit Wochen träumt.(Einmal Samstags Zeitungen ausgetragen, könnte er sich von dem Geld alle TOP-Bots der Welt kaufen, aber das ist ein anderes Thema). Kiddie meldet sich in diesem Forum an und nickt dort natürlch ALLES ab, nur um endlich ins gelobte Land zu kommen. Kiddie würde seine Seele verkaufen und die seiner Oma und aller Vorfahren dazu....
    Kiddie hats endlich geschafft! Kiddie ist angemeldet und schreibt seinen ersten Thread.

    Ab hier kennt ihr das weitere Vorgehen. Ich halte die Reaktionen der Forenmoderatoren bisher für völlig ausreichend. Solange die Anfragen in einem halbwegs überschaubaren Rahmen bleiben, solls so bleiben wie es ist. Verhindern kann man die Anmeldungen nicht ^^

    ciao
    Andy

    "hard stuff is our daily job!"

  • Gibt es ein OCR script für Autoit?

    • Andy
    • 6. April 2009 um 02:36

    Hallo,
    in DIESEM Thread habe ich einen Hinweis zu einer sehr gut funktionierenden Möglichkeit gepostet.
    Aber auch kostenlose fernsteuerbare OCR-Software lässt sich finden.

    ciao
    Andy

  • µit - März

    • Andy
    • 5. April 2009 um 00:21

    Moinz!

    Wie funktioniert eigentlich das trennen der beiden Lösungswege Logisch/Backtrack?
    Zzt. gibt es ja nur eine Funktion _solvesudoku, und bei mir fängt das backtracken natürlich erst dann an, wenn alle logischen Lösungen ausgereizt sind. D.h. fürs backtracken hätte ich gegenüber einem "reinen" Backtracker schon einen ziemlichen Vorsprung an bereits gelösten Feldern.
    Zumindest bei mir ist es nämlich so, dass der logische Löser einige Faktoren schneller ist wie mein Backtrack-Algorithmus. Unfair?!

    Andererseits muss das ja nix heissen, vielleicht ist mein bt-Algorithmus um Faktoren langsamer wie eurer....(das befürchte ich jedenfalls ;( )

    Habe mal bissl mit den (von mir) nicht logisch lösbaren Sudokus gespielt. U.a. habe ich das Sudoku viermal jeweils um 90° gedreht berechnen lassen und Zeitunterschiede bis zum Faktor 100 beim backtracken festgestellt. Ergebnis: Wenns lange dauert, dann hat man nur in der verkehrten Ecke angefangen^^. Ich habe jedenfalls keinen Zusammenhang finden können, der die optimale Anfangsecke zum backtracken feststellt. Trotzdem oder besser genau deswegen würde ich den Test dahingehend erweitern, jedes Sudoku 4x backtracken zu lassen (jeweils 90° gedreht). Zeit = Gesamtzeit oder Durchschnitt oder wie auch immer.....

    Spoiler anzeigen
    [autoit]

    func _drehen($string) ;sudoku um 90° im Uhrzeigersinn drehen
    dim $neustring=""
    for $sp=9 to 1 step -1
    for $ze=81 to 1 step -9
    $neustring=$neustring&stringmid($String,$ze-$sp+1,1)
    Next
    Next
    return $neustring
    EndFunc

    [/autoit]

    ciao
    andy

  • µit - März

    • Andy
    • 3. April 2009 um 02:20

    Hi,

    eukalyptus, bei deinen Vorschlägen für den backtrace-Benchmark haben die meisten Sudokus mehrere Lösungen! Dein Benchmark bewertet nur eine richtige Lösung.

    Zitat von Reeder

    Sind Objekte erlaubt?
    Ich würde gerne sowas hier nutzen: AutoIt-Quellcode
    1 $feld = ObjCreate("System.Collections.ArrayList")
    Bin mir aber nicht sicher, ob das noch zu den Autoit-Mittel zählt.


    Ich stimme für grenzwertig^^

    Zitat von progandy

    //Edit: Aber in diesem Wettbewerb ist das ja nicht verboten Includes und DLLs sind erlaubt, wenn es in der Aufgabe nicht verboten ist.

    Verspäteter Aprilscherz :rofl:
    Ich hatte die Aufgabe so aufgefasst, in AutoIt eine Lösung zu scripten. Daher fallen m.E. sämtliche "externen" Dll´s usw. aus dem Rahmen. Es gibt fix-und fertige sehr gut dokumentierte Sudoku-solver-Dll´s downzuloaden. Auch in C++ oder mit irgendeiner anderen der .Net-Varianten selbstgeschriebene "Hilfskonstruktionen" würde ich nur "ausser Konkurrenz" bewerten.
    Oder wir lassen direkt so etwas zu....

    [autoit]

    Run("Sudoku-Solve.EXE "&$sudokustring)

    [/autoit]


    ciao
    Andy

  • StringRegExp...ich habe keine Ahnung :(

    • Andy
    • 2. April 2009 um 23:45

    Hi, ich stehe wieder auf dem Schlauch.
    Wie könnte man folgendes Problem lösen?: "Finde genau einen Treffer des Teilstrings im String."
    AutoIt -Äquivalent:

    [autoit]

    Func _stringgenaueinmal($string,$teilstring)
    if StringInStr($string,$teilstring)<>0 and StringInStr($string,$teilstring,0,2)=0 Then ;finde einen oder mehrere treffer und nicht 2 treffer => nur ein einziger treffer
    return 1

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

    Else
    return 0
    endif
    EndFunc ;==>_zifferdoppelt

    [/autoit]


    Die einfachen RegEx´es kann ich nachvollziehen, aber zzt fehlt noch der "Klick" um eigene zusammenzustricken...

    Die Position(en) des Teilstrings im String bekommt man doch, indem man das zurückgegebene Array ausliest?!
    $array=StringRegExp(......
    $array[0]=position

    ciao
    Andy

  • StringRegExp...ich habe keine Ahnung :(

    • Andy
    • 2. April 2009 um 18:13

    Vielen Dank! :thumbup:
    Hab sogar kapiert, wieso das funktioniert :D
    Ist wie mit allem anderen auch, je mehr man sich damit befasst, desto klarer wirds

  • StringRegExp...ich habe keine Ahnung :(

    • Andy
    • 2. April 2009 um 17:50

    Hallo zusammen,
    wer gibt mir mal eine Hilfestellung bzgl. der Regular Expressions?
    Folgendes Problem:
    In einem String sollen die Buchstaben des gesamten Alphabets gefunden werden, allerdings jeder maximal einmal.
    Bspstring "Lambrusco" => TRUE, denn jeder Buchstabe kommt nur einmal vor
    Bspstring "Die Murksbrothers" => False, denn z.B "e" und "s" kommen mehrfach vor

    d.h. ich verwende als Pattern [a-zA-Z], denn das sind ja die gesamten Buchstaben, ein ? muss auch noch irgendwohin, ich möchte jeden Buchstaben ja nur einmal finden.....und da verliessen sie ihn^^

    Habe einiges probiert, komme aber nicht weiter...

    thx vorab
    ciao
    andy

  • ct Aprilscherz

    • Andy
    • 2. April 2009 um 09:45

    Hi,
    ich bekomme die c´t im Abo, daher war schon am Samstag der Tag gerettet^^
    Aber definitiv besser war m.E. der Cartoon auf S.17!

    ciao
    Andy

  • nfo in autoit verarbeiten ( formatierung )

    • Andy
    • 31. März 2009 um 09:24

    Hi,
    weder deine "test.html" noch deine *.nfo-Datei werden bei mir mit etwas anderem wie ÜÖ usw dargestellt. Aus dem Zusammenhang würde ich jetzt mal vermuten, dass diese Dateien eine Art ASCII-Bild darstellen sollen, aber in einem anderen Format(Zeichensatz) dargestellt werden.
    Optisch sind bei mir zumindest deine Dateien und die Eintrage im GUI-Input-Feld identisch....

    Andy

  • Dll Problem

    • Andy
    • 31. März 2009 um 09:12

    Hallo,
    lt der mir vorliegenden Hilfe stimmt etwas mit deinen Parametern bei GuiCtrlSetimage nicht.

    Code
    GUICtrlSetImage ( controlID, filename [, iconname [, icontype]] )
    
    
    ParametercontrolID	Die Identifikationsnummer des Steuerelements (Control-ID), wie von einer GUICtrlCreate... Funktion zurückgegeben.
    filename	        Der Dateiname des Bildes, das auf dem Steuerelement angezeigt werden soll.
    iconname	        [optional] Der Icon Name, falls die Datei mehrere Icons enthält. Dies kann eine Ordinalzahl sein, falls es eine negative Zahl aufweist. Sonst -1.
    icontyp                 [optional] Um eine bestimmte Icongröße auszuwählen: 0 = klein, 1 = normal (Standard).
    für TreeViewItem bedeutet die Icongröße : 2 = ausgewählt/markiert, 4 nicht markierter Eintrag.


    iconname und icontyp, was passiert, wenn du diese Parameter weglässt?

    ciao
    Andy

  • µit - März

    • Andy
    • 30. März 2009 um 19:47
    Zitat

    würde ich zu GuiCtrlSetData raten.

    ...anders wirds schwer, ich weiss^^. Aber das scheint das Problem zu sein. PeeTheBee hatte in einem anderen Thread etwas zu Speicherlecks in Autoit gesagt, jetzt kann ich mir wenigstens ansehen, wie sich so etwas äußern kann.
    @Canyon, beschreibe mal in einer Gui ca 5000-6000x einige Buttons mit GuictrlsetData und bewege dann mal ein Fenster drüber....
    ciao
    Andy

  • nfo in autoit verarbeiten ( formatierung )

    • Andy
    • 30. März 2009 um 13:42

    Hi,

    Zitat

    Hey leute hab gerade ein problem, wie kann ich eine *.nfo datei, bzw deren inhalt
    in autoit in einer variable speichern und genauso wieder ausgeben?

    Genau darauf hat dir GtaSpider geantwortet....

    Ggf wäre es hilfreich, die Orginaldatei anzuhängen, damit man wenigstens halbwegs weiss um was es geht

    Zitat

    aber ich hoffe ihr kennt das und wisst was ich meine

    Dem ist mitnichten so....

    Vielleicht hilft dir ja auch die Hilfe weiter, Stichwort: mode

    Code
    FileOpen ( "filename", mode )


    ciao
    Andy

  • micha1621

    • Andy
    • 30. März 2009 um 10:46

    [Opera]
    Extras-Einstellungen-Erweitert-Cookies-Bearbeiten

    Wie das beim Internetzexplodierer oder anderen Surfmaschinen funktioniert, weiss ich nicht. Wird aber wohl auch kein Hexenwerk sein....

    ciao
    Andy

    Troll?

  • µit - März

    • Andy
    • 29. März 2009 um 23:06

    Hallo zusammen,

    ein guter Vorschlag von eukalyptus!

    Ich bin mittlerweile dabei, meinen Logik-basierten Solver mit backtracking "auszubauen", d.h. erst schnellstmöglich (per Strategie) viele Felder vollmachen, und erst wenn nichts mehr geht....bruteforce...

    Allerdings funktioniert das nur bis zu einem gewissen Grad. Wenn sehr "schwierige" Sudokus gelöst werden müssen, dann bricht das Script irgendwann ohne Fehlermeldung ab. Scheint an der Rekursionstiefe zu hängen. Lt. Taskmanager ist aber noch reichlich Speicher vorhanden.
    Während das Script im backtracking läuft, gebe ich die Zwischenergebnisse auf die Konsole aus. Gleichzeitig wird jeder Sprung in eine neue Rekursion mit einer 1-sekündigen messagebox angezeigt.Irgendwann mitten im Ablauf gibt es keine Messageboxen mehr, sondern nur noch Konsolenausgaben. Die letzte angezeigte msgbox ist riesengroß und hat Grafikfehler. Einige Sekunden später beendet sich das Script ohne Fehlermeldung.
    Ich versuche natürlich, möglichst "sauber" aus den Rekursionen (und Funktionen) rauszukommen, d.h. keine Speicherleichen zu hinterlassen. Wahrscheinlich liegt der Hase aber in der per auskommentierten ;GUISetState(@SW_SHOW) "unsichtbaren" Grafikausgabe begraben.

    Für die "sichtbare" Version des Lösungsvorgangs verwende ich eine GUI mit einer 9x9 Sudoku-Matrix, diese Matrix habe ich mit Buttons realisiert. Wenn jetzt einige Sudokus gelöst wurden, und man ein kleines Fensterchen (z.B. die msgbox) über die GUI bewegt, dann flackern die Buttons und zeigen alle bisher dort angezeigten Zahlen an ;( , als ob 100 Buttons übereinanderliegen und jeder dieser Buttons schnell mal "ganz nach oben" wollte....irgendwie auch nicht ganz astrein ?(

    Jedenfalls mache ich weiter, es werden noch 2 Strategien eingebaut, und dann versuche ich bissl speed rauszuholen. Mit Sicherheit gibts für 30 Programmzeilen einen einzigen Befehl :rofl:

    ciao
    Andy

  • µit - März

    • Andy
    • 28. März 2009 um 15:39
    Zitat

    Mal sagen möchte, das alle Beispiele die ich gepostet habe von mir binnen 5 Minuten fertig waren.
    Also nichts besonderes !


    Genau das meine ich...wenn 29 von deinen 30 Rätseln per "Strategie" in 10 Sekunden gelöst werden und ich für das restliche eine Rätsel per bruteforce dann die restlichen 5 Minuten brauche (oder ohne bruteforce garnicht lösen kann?!), wo ist denn da die "Fairness"?
    Sicher könnte man sagen, im Endeffekt kommt das aufs gleiche raus, dann hat der "Stratege" Pech gehabt, Im anderen Fall läüfts genau umgekehrt: dann hat der Stratege mal "Glück" und löst alle 30 Rätsel in 10 Sekunden und der Bruteforcer ist weit abgeschlagen. Er (Sie ;) ) findet zwar zu den lösbaren Sudokus die (oder sogar alle moglichen) Lösungen, das dauert aber entsprechend lange. Verzwickt!?

    ciao
    Andy

  • µit - März

    • Andy
    • 28. März 2009 um 03:01

    Hi

    Zitat

    Das Skript sollte selber erkennen ob es das Sudoku lösen kann.
    Also wenn alle Technike einmal durch sind abbrechen.


    Ja, so solls sein....es gibt auch "einfache" sudokus, die aber trotzdem relativ lange brauchen um gelöst zu werden. Bei Alina waren 2-3 dabei, die könnte man ja mit in die Testsuite aufnehmen.

    Zitat

    Da ich niemals alle Strategien umsetzen kann.....


    Geht mir auch so, ich habe die 4-5 "normalen" Strategien eines m.E. Durchschnittsspielers versucht umzusetzen.

    Zitat

    Wie wäre es einen Tester zu schreiben, der nach einer bestimmten Zeit (2-3 Min) den laufenden String abbricht und zum Schluss die sagen wir mal 10 schnellsten als Durchschnitt nimmt?


    Finde ich nicht gut, das ist wie der linpack-test bei den prozessoren, dann werden die solver auf die testsuite hinoptimiert^^
    Man könnte sich ggf auf eine Handvoll Sudokus einigen, 60 haben wir ja schon vorliegen hier im Thread. Die "schwierigen" (d.h. ohne bruteforce nicht lösbaren) könnte man ja rausnehmen.

    ciao
    Andy

  • µit - März

    • Andy
    • 26. März 2009 um 19:39

    Hi,

    ich habe meinen Solver auf der Basis der Strategien eines (durchschnittlichen) menschlichen Spielers erstellt und versucht, diese Regeln in ein Script zu verpacken, was mir aber eher schlecht als Recht gelungen ist^^. Vieles wird mehrfach berechnet, da ist noch massig Raum für Optimierungen.
    Naja, Grafikausgabe muss ja auch sein, schön bunt, damit man den Lösungsweg verfolgen kann :rolleyes:
    Für die Lösung der 25 von Alina vorgegebenen Puzzles braucht ein 1,2Ghz-PIII ca. 10 Sekunden (ohne Grafikausgabe). Von den 35 Sudokus bei der Auswertung bekomme ich mit meinem Script 4 nicht gelöst.

    Allerdings ist mindestens ein Sudoku dort dabei, dass mit "herkömmlichen" Strategien nicht lösbar ist, d.h. eine reine Aufgabe für einen Bruteforce-Numbercruncher. Ich vermute, prizma und eukalyptus machen solch ein Skript.
    Um schnellstmöglich Ergebnisse zu bekommen würde ich die drei einfachen Regeln in einen rekursiven Algorithmus packen und auf ein 3-d-Array loslassen....aber dazu fehlt mir zzt noch der Antrieb. 8) Ausserdem hat meine Frau schon ganz komisch geguckt als ich ihr von virtuellen Maschinen und DOS und einem Assembler vorgeschwärmt habe.

    Die unterschiedliche Lauflänge beim crunchen hängt einfach von der Startposition und den Abbruchkriterien ab. Ca 60 Anfangsfelder, jedes mit ca 3 Möglichkeiten, und dann noch mit 10 "schlechten " Feldern angefangen...dann läuft sich der Algorithmus tot.

    ciao
    Andy

  • µit - März

    • Andy
    • 23. März 2009 um 18:36

    Hi,
    meine "Mädels" zuhause lösen mit Leidenschaft Sudokus, die eine aufm Nintendo, die andere (so wie ich am liebsten) auf dem Papier.
    Also habe ich mir garkeinen Kopf gemacht und "einfach" versucht, die "menschlichen" Strategien in ein Script umzusetzen...
    Bin ja mal gespannt, zzt hängts an "Papa, das ist doch nicht schwer, das SIEHT man doch, warum erkennt das der Computer nicht..."^^
    Der Code ist dermassen übel, aber egal, hauptsache läuft.
    Ich weiss nicht wie es euch geht, aber einige der Vorgaben-Puzzles sind echt heftig!
    Gibts ggf mehrere Lösungen oder sind die definitiv eindeutig? Strategie ist nur solange schön, wie Brute-force nicht schneller ist.....
    ciao
    Andy

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™