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. SOLVE-SMART

Beiträge von SOLVE-SMART

  • AutoIt WebDriver Crashkurs

    • SOLVE-SMART
    • 14. Februar 2024 um 14:18
    Zitat von MojoeB

    find ich super das du das machst, im Vergleich mit meinem Webdriver Skripts ist es bei dir schöner gelöst, als bei mir.

    Freut mich und Danke für die 💐 MojoeB 😀 .

    Zitat von MojoeB

    Da alle meine Skripte bisher immer [...] ... .... Beispiel einfach Inputboxen beschreiben, links klicken etc. [...]

    Das würde ich gerne mal alles sehen um besser einschätzen zu können, was du da alles gebastelt hast. Diese Funktionalität würde aber den Rahmen sprengen, für so'n relativ einfaches boilerplate template, wie ich es da habe. Finde es super was du da alles mit hinzugefügt hast für dich.

    => Wo liegt das alles? Wahrscheinlich bei dir auf'm Rechner und kann nicht rein zufällig veröffentlicht werden? Also auf GitHub vielleicht 😂 😊 😇 .
    => Ich denke man merkt, ich komme immer wieder mit GitHub um die Ecke, möchte jedoch niemand zu etwas drängen, zumindest nicht zu sehr 😂 .

    ---------------------

    Übrigens: Gute Besserung MojoeB , erhole dich gut.

    Viele Grüße
    Sven

  • Skript mit F10 starten und mit F9 beenden

    • SOLVE-SMART
    • 14. Februar 2024 um 11:30

    Hi DivineFaith ,

    ich kann Moombas nur beipflichten und dafür werben für solche Aktionen den WebDriver zu nutzen.
    Dafür habe ich das Projekt "au3webdriver-boilerplate" eingerichtet => soll den Einstieg mit dem Thema erleichtern 🤞 .

    Allerdings/Aber:
    Wenn du deine "Lösung" nicht ausbauen musst/willst, wenn es für dich stabil genug läuft und du auch nicht die Zeit hast eine gewisse Lernkurve zu bewältigen, dann bleibe ggf. einfach bei dem was du hast. Dies wollte ich der Fairness halber zumindest kurz anmerken. Denn nicht jeder Anwendungsfall in diesem Umfeld (Web-Kram) rechtfertigt den Einsatz des WebDriver meiner Meinung nach.

    Nichtsdestotrotz:
    Mächtiger, weniger Fehler anfällig (da robuster) und flexibler ist die Verwendung des WebDriver (Protokolls).

    Viele Grüße
    Sven

  • run mit start und Anfführungszeichen

    • SOLVE-SMART
    • 14. Februar 2024 um 10:21

    Dann Grüße nach Österreich 👋 .

    Zitat von Racer

    ...da können wir bald ein Rollator-Rennen machen ^^

    😂

    Zitat von Racer

    ...da muss man immer sehr einfache (kindertaugliche) Begriffe verwenden sonst verstehen die Folienkritzler nur Bahnhof :)

    Jap, bin da völlig bei dir 😂 . "Folienkritzler", hervorragend :rofl: .

  • run mit start und Anfführungszeichen

    • SOLVE-SMART
    • 14. Februar 2024 um 08:43
    Zitat von AspirinJunkie

    Das ist nun ein Wort, welches ich so noch nicht kannte obwohl es dem Klang nach 100 Jahre älter zu sein scheint als ich selbst...

    :rofl: ... ja hört sich nach einem Kontext der ersten Schreibmaschinen an. Find' ich aber gut Racer 😇 .

  • Skript mit F10 starten und mit F9 beenden

    • SOLVE-SMART
    • 14. Februar 2024 um 08:42
    Zitat von Moombas

    Siehe dazu den neuen Crashkurs von SOLVE-SMART : AutoIt WebDriver Crashkurs

    Lieben Dank Moombas 🤝 , made my day so far 😅 .
    (So war es gedacht.)

  • AutoIt WebDriver Crashkurs

    • SOLVE-SMART
    • 14. Februar 2024 um 06:36

    Hi liebe Leute 👋 ,

    da ich immer wieder beobachte, sowohl hier als auch im englischen Forum, dass das Thema WebDriver (AutoIt Projekt "au3WebDriver") vielen Leuten Probleme beim Einstieg dazu bereitet, habe ich nun mal ein paar Erklärungen/Hilfestellungen per Video aufgenommen.

    ⚠ Ich hatte vor vielen Monaten auch ein schriftliches Tutorial vorbereitet, doch ich bin nie komplett damit fertig geworden. Ich stehe auch mit Danp2 (dem Autor des GitHub Projektes) im Austausch, ob es nicht wirklich eine offizielle Dokumentation als Website geben sollte, da ich mein Tutorial sowieso so begonnen hatte, doch dazu später mehr.

    📝 Randnotiz:
    Ich habe mich für Videos entschieden und nicht für die schriftliche Variante (derzeit), da dies im Vergleich schneller ging und die offizielle Doku. ohne hin noch aussteht. Die Videoreihe ist in deutsch produziert und wird es ggf. auch von mir in einer englischer Variante nachproduziert, mal schauen.

    🎯 Ziele:
    Das Hauptziel ist, Fragestellungen wie man den jeweiligen Driver (Chrome, Firefox, MSEdge) startet und mit dem WebDriver loslegen kann, zu vereinfachen. Das Nebenziel ist, einen Kurzeinblick zum POM (page object model) mit AutoIt geben zu können, um auch größere Browser Automatisierungen einfacher umsetzen zu können.

    ---------------------

    ⚠ Disclaimer: Die folgende Video-Reihe hat den Zweck (Bildungszweck), des aufbauens und teilen von Wissen. Es dient in keinster Weise dem Autor (mir) in Bezug auf Youtube, Wachstum des Kanals oder einer Monetarisierung. Falls dies als Nebenprodukt entstehen sollte, ist dies unabhängig von der Intension des Bildungszweckes hier.

    grafik.png

    🎬 AutoIt WebDriver Crashkurs

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    🎬 AutoIt WebDriver Crashkurs, Teil 1

    ⌚ Kapitel:
    00:00 Einleitung: Um was geht es?
    01:49 Warum? Wir haben schon so viel
    05:17 Kurzvorstellung "au3webdriver-boilerplate" repository
    06:58 Fazit und Ausblick

    🎬 AutoIt WebDriver Crashkurs, Teil 2

    ⌚ Kapitel:
    00:00 Einleitung
    00:38 Dokumentation
    01:22 Warum boilerplate repos/templates?
    02:06 Wie navigierst du? Branch-Struktur des Repos
    05:11 Wie komme ich an den Code?
    06:47 Aufbau/Struktur des Repos
    08:44 Quellcode Struktur (main.au3)
    15:44 Zusammenfassung
    16:22 Ausblick und Skalierung

    🎬 AutoIt WebDriver Crashkurs, Teil 3

    ⌚ Kapitel:
    00:00 Einleitung
    01:26 Inhaltsabgrenzung
    02:19 Automation flow, die Steps (Teil 1)
    03:37 WebDriver actions
    06:00 Automation flow, die Steps (Teil 2)

    🎬 AutoIt WebDriver Crashkurs, Teil 4

    ⌚ Kapitel:
    00:00 Einleitung
    00:47 POM (page object model)
    06:02 Live Demo: Was haben wir vor?
    07:03 Live Demo: Eine Google Suche
    13:27 Live Demo: Erster Test
    14:00 Live Demo: Unterschied Browser und Driver
    15:02 Live Demo: Cookie Consent
    15:27 Live Demo: Zwischenstand testen
    15:42 Live Demo: Suche mit XPath Selector
    17:39 Live Demo: Sucheingabe
    19:39 Live Demo: Erneuter Test

    🎬 AutoIt WebDriver Crashkurs, Teil 5

    ⌚ Kapitel:
    00:00 Einleitung
    01:12 Live Demo: Suchtreffer auswählen
    07:19 Live Demo: Test und Korrekturen
    08:52 Angebot
    09:31 Zusammenfassung
    13:45 Aufteilung in Branches
    14:15 Mehrwerte des "au3webdriver-boilerplate" Repos
    15:06 Bitte um euren Support

    📑 Inhalt, Zielgruppe, Out of scope

    🎬 AutoIt WebDriver Crashkurs, Teil 1

    📑 Inhalt:
    Kurzvorstellung des AutoIt WebDriver Crashkurs sowie meines GitHub Repositories "au3webdriver-boilerplate".
    Es wird auf die Frage eingegangen, warum ich den Bedarf sehe den Einstieg bei der Arbeit mit dem WebDriver (der Browser Automation) zu vereinfachen.

    🎪 Zielgruppe:
    Für interessierte AutoIt-User oder bspw. Software Entwickler und Software Tester,
    mit ggf. Kenntnissen in anderen WebDriver-Frameworks (Selenium, WebdriverIO etc.),
    mit der Fragestellung wie lässt sich ein Browser mit AutoIt automatisieren/steuern .

    🔇 Out of scope:
    Ich habe bewusst auf Details verzichtet, welche man in einem Tutorial oder Walkthrough vorfinden würde (dies ist ein Crashkurs).
    Ebenfalls habe ich auf detailierte Erläuterungen zu GitHub verzichtet.

    🎬 AutoIt WebDriver Crashkurs, Teil 2

    📑 Inhalt:
    Kurzvorstellung des GitHub Repositories "au3webdriver-boilerplate" und des Quellcode Downloads.
    Die Boilerplate-Struktur wird erläutert und ein Ausblick auf die weiteren Inhalte gegeben.

    🎪 Zielgruppe:
    Für interessierte AutoIt-User oder bspw. Software Entwickler und Software Tester,
    mit ggf. Kenntnissen in anderen WebDriver-Frameworks (Selenium, WebdriverIO etc.),
    mit der Fragestellung wie lässt sich ein Browser mit AutoIt automatisieren/steuern .

    🔇 Out of scope:
    Ich habe bewusst auf Details verzichtet, welche man in einem Tutorial oder Walkthrough vorfinden würde (dies ist ein Crashkurs).
    Ebenfalls habe ich auf detailierte Erläuterungen zu GitHub verzichtet.

    🎬 AutoIt WebDriver Crashkurs, Teil 3

    📑 Inhalt:
    Kurzvorstellung des Beispiel-Codes sowie der WebDriver actions (wrapper Funktionen die einen den Einstieg
    im Umgang mit dem WebDriver erleichtern. Zudem gibt es eine Inhaltsabgrenzung um keine falschen Erwartungen zu erzeugen.

    🎪 Zielgruppe:
    Für interessierte AutoIt-User oder bspw. Software Entwickler und Software Tester,
    mit ggf. Kenntnissen in anderen WebDriver-Frameworks (Selenium, WebdriverIO etc.),
    mit der Fragestellung wie lässt sich ein Browser mit AutoIt automatisieren/steuern .

    🔇 Out of scope:
    Ich habe bewusst auf Details verzichtet, welche man in einem Tutorial oder Walkthrough vorfinden würde (dies ist ein Crashkurs).
    Ebenfalls habe ich auf detailierte Erläuterungen zu GitHub verzichtet.

    🎬 AutoIt WebDriver Crashkurs, Teil 4

    📑 Inhalt:
    Kurzvorstellung des POM (page objec model) unter AutoIt. Des Weiteren wird in der Live Dokumentation
    das POM erläutert, gezeigt, begründet und praktisch vorgestellt.

    🎪 Zielgruppe:
    Für interessierte AutoIt-User oder bspw. Software Entwickler und Software Tester,
    mit ggf. Kenntnissen in anderen WebDriver-Frameworks (Selenium, WebdriverIO etc.),
    mit der Fragestellung wie lässt sich ein Browser mit AutoIt automatisieren/steuern .

    🔇 Out of scope:
    Ich habe bewusst auf Details verzichtet, welche man in einem Tutorial oder Walkthrough vorfinden würde (dies ist ein Crashkurs).
    Ebenfalls habe ich auf detailierte Erläuterungen zu GitHub verzichtet.

    🎬 AutoIt WebDriver Crashkurs, Teil 5

    📑 Inhalt:
    Kurzvorstellung des Angebots meinerseits, der Aufteilung des Repositories (branching) und die bitte um Support.
    Zudem wird in der Zusammenfassung auf alle wichtigen Aspekte des AutoIt WebDriver Crashkurs nochmals eingeganen.

    🎪 Zielgruppe:
    Für interessierte AutoIt-User oder bspw. Software Entwickler und Software Tester,
    mit ggf. Kenntnissen in anderen WebDriver-Frameworks (Selenium, WebdriverIO etc.),
    mit der Fragestellung wie lässt sich ein Browser mit AutoIt automatisieren/steuern .

    🔇 Out of scope:
    Ich habe bewusst auf Details verzichtet, welche man in einem Tutorial oder Walkthrough vorfinden würde (dies ist ein Crashkurs).
    Ebenfalls habe ich auf detailierte Erläuterungen zu GitHub verzichtet.


    Ein paar Links:

    • Repository "au3webdriver-boilerplate" (meine Hilfestellung zum WebDriver)
    • Repository "au3WebDriver" (das WebDriver Projekt)
    • AutoIt WebDriver Crashkurs (Playlist)


    💡 Eindrücke/Feedback ist natürlich erwünscht, Danke 🤝 .

    Viele Grüße
    Sven

  • TableData - effizientere Arbeit mit tabellenstrukturierten Daten

    • SOLVE-SMART
    • 13. Februar 2024 um 08:22

    Hi zusammen 👋 ,

    ja ich darf MojoeB beipflichten, die UDF ist sehr hilfreich AspirinJunkie!
    Recht einfach in der Handhabung und gerade wenn das SQL Konzept des "joins" bekannt ist, wirkt es sehr intuitiv 😀 .

    Danke dir. Danke auch fürs hosten auf GitHub, so habe ich zumindest, all deine UDFs im Blick (one follower more dude) 🤝 .

    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 11. Februar 2024 um 20:16

    Ach wie kreativ ihr doch seid 👌 . Richtig cool dies so zu beobachten, wie aus 'ner kleinen "Übung", wieder einmal solche ... "ich kann das auch noch ausbauen und dann so" ... Aktionen entstehen. Danke und Lob an alle hier Teilnehmenden 🤝 .

    Ein Feedback zum bisher gezeigten folgt auch noch sobald es die Zeit hergibt und ich den Fokus wieder darauf setzen kann.
    Einen angenehmen Abend euch allen noch.

    Viele Grüße
    Sven

  • Community Projekt: Teil 1 - Interesse an einem gemeinsamen größeren (Software)Projekt?

    • SOLVE-SMART
    • 11. Februar 2024 um 20:13

    Hi zusammen 👋 ,

    kurze Zwischeninfo: Das Thema und das Anliegen an sich ist nicht vergessen. Ich melde mich sobald es die Zeit hergibt und ich den Fokus wieder darauf setzen kann.
    Bis dahin hoffe ich auf eure Geduld 😁 .

    Einen angenehmen Abend euch allen noch.
    Viele Grüße
    Sven

  • Outlookex Schriftgröße ändern

    • SOLVE-SMART
    • 8. Februar 2024 um 22:40

    Guten Abend Werner Windi 👋 ,

    ich befürchte der Vorschlag von water mit der Trennlinie wird in HTML Tabellen nicht klappen.
    Dafür gibt es Styling, was man da anwendet. Ich fange gar nicht erst groß mit CSS an (das ist der Begriff dazu), ich zeige dir hier einfach nur eine abgewandelte Variante von Moombas Code oben - also mit einem Tabellen-Rahmen.

    Vielleicht erhoffst du dir sowas?

    AutoIt
    Opt('MustDeclareVars', 1)
    
    #include-once
    #include <Array.au3>
    #include <WinAPIConv.au3>
    
    ; Array heißt $aWeine
    ;~ Global $AlleArtikel = _ArrayToString($aWeine, " ")
    
    Global $aWeine[][3] = _
        [ _
            ['02', '1', '2021er Silvaner, trocken'], _
            ['01', '1', '2022er Gutenberger´s Winzerschoppen, lieblich'], _
            ['04', '1', '2021er Müller-Thurgau u. Silvaner, lieblich'], _
            ['08', '1', '2022er Blauer Spätburgunder Rosé, lieblich'], _
            ['07', '1', '2022er Rotling, halbtrocken'] _
        ]
    
    ;MsgBox(0,"Alle Artikel", $AlleArtikel)
    
    _ArrayDisplay($aWeine)
    
    ;~ For $Col = 0 to $Cols - 1 ;wird nur benötigt wenn die Spalten überschriften haben
    ;~     $AlleArtikel &= '<th>' & $aWeine[0][$Col] & '</th>'
    ;~ Next
    
    Global $Wert, $Rahmen = 'style="border: 1px solid black;"' ; Tabellen-Rahmen in schwarz
    Global $Tabelle = '<table>'
    
    For $Row = 0 to Ubound($aWeine, $UBOUND_ROWS) - 1
        $Tabelle &= '<tr>'
    
        For $Col = 0 to Ubound($aWeine, $UBOUND_COLUMNS) - 1
            $Wert = BinaryToString(StringToBinary($aWeine[$Row][$Col] & @LF, 4), 1) ; Somit sind Umlaute oder Zeichen wie "´" okay
    
            $Tabelle &= '<td ' & $Rahmen & '>' & $Wert & '</td>'
        Next
    
        $Tabelle &= '</tr>'
    Next
    
    $Tabelle &= '</table>'
    
    ConsoleWrite($Tabelle & @CRLF)
    
    #cs
    ; Ergebnis:
    <table><tr><td style="border: 1px solid black;">02
    </td><td style="border: 1px solid black;">1
    </td><td style="border: 1px solid black;">2021er Silvaner, trocken
    </td></tr><tr><td style="border: 1px solid black;">01
    </td><td style="border: 1px solid black;">1
    </td><td style="border: 1px solid black;">2022er Gutenberger´s Winzerschoppen, lieblich
    </td></tr><tr><td style="border: 1px solid black;">04
    </td><td style="border: 1px solid black;">1
    </td><td style="border: 1px solid black;">2021er Müller-Thurgau u. Silvaner, lieblich
    </td></tr><tr><td style="border: 1px solid black;">08
    </td><td style="border: 1px solid black;">1
    </td><td style="border: 1px solid black;">2022er Blauer Spätburgunder Rosé, lieblich
    </td></tr><tr><td style="border: 1px solid black;">07
    </td><td style="border: 1px solid black;">1
    </td><td style="border: 1px solid black;">2022er Rotling, halbtrocken
    </td></tr></table>
    #ce
    Alles anzeigen

    grafik.png

    💡 Ist nur ein ganz grobes Beispiel. Der Code ist stark verbesserungwürdig, doch vielleicht hilft es ja schon.

    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 7. Februar 2024 um 23:43
    Zitat von MojoeB

    ^^^ich habe mir grad eben erst dein video angesehen hoffe :D dich stört die gui nicht^^.

    Hi MojoeB 👋 , erstmal auch dir Danke für deine Einsendung.
    Ich habe mir weder deinen Code noch die GUI angeschaut, bin mir aber sicher das es mich nicht stören wird 😅 .

    Ich melde mich bei Gelegenheit mit einer zusammenfassenden Auswertung. Bitte nicht zu viel dazu erwarten, es soll nur ein paar Dinge beleuchten und keine akademische Analyse werden 😂 . Also, Danke und bis später.

    Viele Grüße
    Sven

  • Problem: git & StdoutRead

    • SOLVE-SMART
    • 7. Februar 2024 um 15:24

    Danke, jedoch hatte ich genau dies getan (also neben weiteren Tests noch).
    Mein Problem war einfach das ich im falschen Verzeichnis war, was ich nicht gleich erkannt hatte 🙄 .

    Jetzt nach deinem Hinweis und dem erneuten Versuch ist es mir aufgefallen und der Unterschied zu den Umlauten nun mit _WinAPI_OemToChar() auch 👌 .
    Danke dir.

    Viele Grüße
    Sven

  • Problem: git & StdoutRead

    • SOLVE-SMART
    • 7. Februar 2024 um 14:59

    Hi AspirinJunkie 👋 ,

    ich nehme die Funktion gleich mal in meine Snippets mit auf, weil sie sehr hilfreich ist.
    Ich habe sowas bisher umständlicher gemacht, aber so geht es viel besser mit dem StdErr 👌 .
    Danke dafür.

    Zitat von AspirinJunkie

    Ich empfehle um Probleme mit der Zeichenkodierung zu umgehen prinizpiell alles was von stdoutread kommt noch durch _WinAPI_OemToChar() zu schleifen.

    Das verstehe ich, habe aber bei den Tests dazu bisher keinen Unterschied gemerkt ob ich StdoutRead durchschleife oder nicht 🤔 .

    BugFix Ich sehe es geht super voran mit der GIT-SciTE-Integration, feine Sache!

    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 20:25

    So liebe Leute, hier nun mein "Wurf" für die Beschäftigungstherapie "Galgenraten" 😂 .

    Galgenraten (Teil1 und Teil2 (wenn compiled))
    AutoIt
    #pragma compile(Console, true)
    #pragma compile(FileVersion, 0.1.0)
    #pragma compile(LegalCopyright, © Sven Seyfert (SOLVE-SMART))
    #pragma compile(ProductVersion, 0.1.0 - 2024-02-04)
    
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Change2CUI=y
    #AutoIt3Wrapper_Outfile_x64=main.exe
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=y
    #Au3Stripper_Parameters=/sf /sv /mo /rm /rsln
    
    #include-once
    #include <String.au3>
    #include "word-list.au3"
    
    _Main()
    
    Func _Main()
        Local Const $sWord       = _GetRandomWord()
        Local Const $iWordLength = StringLen($sWord)
        Local $sUnderscores      = _GetUnderscoresByWord($sWord)
    
        Local $iAttempts  = $iWordLength * 2
        Local $bIsCorrect = False
    
        _Print(StringFormat( _
            '+---------------+\n' & _
            '|--GALGENRATEN--|\n' & _
            '+---------------+\n' & _
            '\n' & _
            '💡 Errate ein Wort mit %d Buchstaben %s , aus der Kategorie Software Entwicklung.\n' & _
            'Du hast %d Versuche 🤹‍♂️ , jeder falsche Buchstabe reduziert deine Versuche.\n', _
            $iWordLength, $sUnderscores, $iAttempts))
    
        While True
            Local $sInput = _GetInput()
    
            For $i = 1 To StringLen($sInput) Step 1
                $bIsCorrect = False
    
                For $j = 1 To $iWordLength Step 1
                    Local $sInputCharacter = StringMid($sInput, $i, 1)
                    Local $sWordCharacter  = StringMid($sWord, $j, 1)
    
                    If $sInputCharacter == $sWordCharacter Then
                        $sUnderscores = _ReplaceUnderscores($j, $sUnderscores, $sWordCharacter)
                        $bIsCorrect   = True
                    EndIf
                Next
    
                If Not $bIsCorrect Then
                    $iAttempts -= 1
                EndIf
            Next
    
            _PrintAttempt($sUnderscores, $iAttempts)
    
            If _IsLost($iAttempts, $sWord) Then
                ExitLoop
            EndIf
    
            If _IsWon($sWord, $sUnderscores, $iAttempts) Then
                ExitLoop
            EndIf
        WEnd
    
        Local Const $iSecondsToWait = 5
        Sleep($iSecondsToWait * 1000)
    EndFunc
    
    Func _Print($sData)
        Local Const $iAnsiFlag = 1
        Local Const $iUtf8Flag = 4
    
        ; Teil 1: to show emojis
        If Not @Compiled Then
            ConsoleWrite(BinaryToString(StringToBinary($sData & @LF, $iUtf8Flag), $iAnsiFlag))
            Return
        EndIf
    
        ; Teil 2: to show at least ? instead of cryptic characters
        ConsoleWrite(BinaryToString(StringToBinary($sData & @LF, $iAnsiFlag), $iUtf8Flag))
    EndFunc
    
    Func _GetRandomWord()
        Local Const $aList    = _WordList()
        Local Const $iIntFlag = 1
        Local Const $iIndex   = Random(0, _GetCount($aList), $iIntFlag)
    
        Return StringLower($aList[$iIndex])
    EndFunc
    
    Func _GetCount($aList)
        Return UBound($aList) - 1
    EndFunc
    
    Func _GetUnderscoresByWord($sWord)
        Local Const $iTrailingWhitespaceFlag = 2
        Return StringStripWS(_StringRepeat('_ ', StringLen($sWord)), $iTrailingWhitespaceFlag)
    EndFunc
    
    Func _GetInput()
        ; Teil 1: by InputBox()
        If Not @Compiled Then
            Local $sInput = InputBox('GALGENRATEN', 'Gib einen Buchstabe oder ein Wort ein.')
            If @error Then
                Exit -1
            EndIf
    
            Return StringLower($sInput)
        EndIf
    
        ; Teil 2: by ConsoleRead()
        While True
            Local $sInput = ConsoleRead()
            If @error Then
                Exit -1
            EndIf
    
            If @extended > 0 Then
                ExitLoop
            EndIf
    
            Sleep(25)
        WEnd
    
        Return StringLower(StringReplace($sInput, @CRLF, ''))
    EndFunc
    
    Func _ReplaceUnderscores($j, $sUnderscores, $sWordCharacter)
        Local Const $iPosition = ($j * 2) - 1 ; HINT: This is because of the space after each underscore "_ ".
        Local Const $sBefore   = StringMid($sUnderscores, 1, $iPosition - 1)
        Local Const $sAfter    = StringMid($sUnderscores, $iPosition + 1)
    
        Return $sBefore & $sWordCharacter & $sAfter
    EndFunc
    
    Func _PrintAttempt($sUnderscores, $iAttempts)
        _Print(StringFormat( _
            'Wort: %s (%d Versuche noch)', _
            $sUnderscores, ($iAttempts >= 0) ? $iAttempts : 0 ))
    EndFunc
    
    Func _IsLost($iAttempts, $sWord)
        If $iAttempts > 0 Then
            Return False
        EndIf
    
        _Print(StringFormat( _
            '\n😥 Verloren! Das gesuchte Wort war "%s".', _
            $sWord))
    
        Return True
    EndFunc
    
    Func _IsWon($sWord, $sUnderscores, $iAttempts)
        Local Const $iStripAllWhitespacesFlag = 8
        If $sWord <> StringStripWS($sUnderscores, $iStripAllWhitespacesFlag) Then
            Return False
        EndIf
    
        _Print(StringFormat( _
            '\n😀 Gewonnen! %d Versuche übrig, gut gemacht.', _
            $iAttempts))
    
        Return True
    EndFunc
    Alles anzeigen

    Wie so oft, mein Code ist länger als der jedes Anderen bisher hier. Auch 'ne Art von Erkennungsmerkmal oder so 😅 .

    💡 Die Auswertung folgt. Mal sehen ob ich das heute noch schaffe oder erst morgen dann.

    Viele Grüße und guten Abend
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 15:47
    Zitat von Moombas

    Ich weiß schon warum ich früher mit div. Lehrern aneinander gerasselt bin :rofl:

    Ein wenig Reibung ist völlig okay 🤭🙃😏 . Bin trotzdem froh das du teilgenommen hast 😅 .

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 15:12

    Oh wow, ihr macht mich fertig 😂 .

    AspirinJunkie ich gehe davon aus (hoffe es), dass du meinen Kommentar mit einem Schmunzeln aufgenommen hast und dich nicht zur Rechtfertig gedrängt gefühlt hast jetzt?! Ist doch alles ein Spaß und ein wenig Übung für nebenbei. Deinen Ansatz bzw. deine Erläuterung verstehe ich. Ehrlich gesagt hatte ich bei der Konzeption der Aufgabe nicht so detailiert darüber nachgedacht, was "fachlich" korrekt(er) wäre. Es stimmt aber einfach was du sagst 🤝 .

    Schnuffel alles gut auch auf meiner Seite. Gern nehme ich deinen neuen Code mit auf. Die Wertung ist auch keine Siegerehrung (leider 😅). Ist eher interessant zu sehen, wie verschiedene Leute an die Aufgabe herangehen usw. Da fällt mir ein, ich muss mein Code auch noch posten. Folgt noch.

    Wenn ich die Zeit finde mir das genauer anzuschauen AspirinJunkie, gebe ich dir gern Feedback.

    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 14:25

    Hi liebe Leute 👋 ,

    Danke für eure Einsendungen 👍 . Allerdings darf ich auch bekannt geben, dass sich keines der Programme/Skripte bisher so verhält wie ich es "versucht habe" in den Vorgaben zu beschreiben/vorzugeben => mit anderen Worten: Macht die Glotzen oof beim lesen oder guggt mein Video dazu :rofl: .

    💡 Nein wirklich vielen Dank. Mir ist klar das ihr das mal zwischendurch gemacht habt und genau so war ja auch die Intension, etwas Abwechslung.
    ⚠ Ich versuche mal die Unterschiede etwas zu beleuchten/aufzulisten.

    Bisher kann ich sagen das ihr alle die Coding Challenge (erfolgreich) absolviert habt 👌 .
    Wenn es auch hier und da Unterschiede bei euren Lösungen gibt. Die programmatischen Hürden sind bisher keine für euch, eher die "hab' ich das nun wirklich richtig verstanden was der da von mir will 🤔" 🤭 .



    Also ich melde mich mit 'ner kleinen Auflistung von Abweichungen usw.
    Weiterhin einen angenehmen Tag euch allen noch.

    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 08:35

    Das du im Backend ein absoluter Held 🦸‍♂️ bist (ist nicht ironisch), weiß man ja mittlerweile, doch das GUI Handling mit GuiOnEventMode ist doch nicht schlecht.
    So 'ne Kleinigkeit ist nicht der Rede wert. Wie gesagt, später mehr (Bewertung der Lösung) 🤝 .

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 08:21

    Hi AspirinJunkie 👋 ,

    nur ganz kurz, bin auf dem Sprung: Ich glaube es wäre gut wenn du GUICreate("Galgenraten", 227, 119, 4115, -62) bspw. zu GUICreate("Galgenraten", 227, 119) änderst, damit User die nicht deine Monitoraufteilung haben, die GUI auch angezeigt bekommen 😅 oder ist dies Absicht?

    Später mehr zum Code und Spielverhalten ... muss ab und an auch mal arbeiten 🤣 .
    Viele Grüße
    Sven

  • Code Kata - Galgenraten

    • SOLVE-SMART
    • 6. Februar 2024 um 00:24

    Hi Kanashius 👋 , vielen Dank fürs teilnehmen an dieser coding Challange.

    Auf Grund meiner vielleicht doch nicht ausreichend eindeutigen Aufgabenstellung (Vorgaben), kam es im Ablauf deiner Lösungsvariante zu Logik-Fehlern. Also ich habe mir es angeschaut, sowohl Teil 1, als auch Teil 2 funktionieren an sich, auch wenn sich das Spiel nicht ganz so verhält, wie ich meinte.

    Daher im Post#1 nun ein kurzes 🎬 Video dazu verlinkt, um den Interpretationsspielraum zu verkleinern 😅 .
    Vielleicht passt du deine Variante nochmal ein wenig an, nachdem du das Video gesehen hast und deinen Ablauf mal testest bitte.

    Ansonsten ist klar zu erkennen, das du weißt was du tust 😇 .
    Danke und bis später. Mal schauen was da noch von den Anderen kommt 🤞 .

    Viele Grüße
    Sven

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™