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 .
💡 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
Beiträge von SOLVE-SMART
-
-
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) 🤝 . -
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 -
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 -
Hi HansJ54 👋 ,
also wenn es dir wirklich nur um die vier Buttons geht, die am Anfang ausgeblendet sein sollen und per Klick auf die GUI eingeblendet werden sollen, dann sollte dir das folgende Beispiel helfen:AutoIt
Alles anzeigen#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 4 -w 5 -w 6 -w 7 #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y Global $bButtonsDisplayed _Main() Func _Main() Local $mButtons[] Local $hGui = GUICreate('gui-demo', 400, 300) GUICtrlCreateLabel('test label 1', 15, 15) GUICtrlCreateLabel('test label 2', 15, 40) $mButtons.Button1 = GUICtrlCreateButton('button 1', 210, 230, 85, 25) $mButtons.Button2 = GUICtrlCreateButton('button 2', 300, 230, 85, 25) $mButtons.Button3 = GUICtrlCreateButton('button 3', 210, 260, 85, 25) $mButtons.Button4 = GUICtrlCreateButton('button 4', 300, 260, 85, 25) $bButtonsDisplayed = True _HideButtons($mButtons) GUISetState(@SW_SHOW, $hGui) Local Const $iCloseEventFlag = -3 Local Const $iMouseDownFlag = -7 While True Switch GUIGetMsg() Case $iCloseEventFlag ExitLoop Case $iMouseDownFlag _ToggleButtons($hGui, $mButtons) Case $mButtons.Button1 MsgBox('', '', 'button 1') Case $mButtons.Button2 MsgBox('', '', 'button 2') EndSwitch WEnd EndFunc Func _ToggleButtons($hGui, ByRef $mButtons) Switch GUIGetCursorInfo($hGui)[4] Case $mButtons.Button1, _ $mButtons.Button2, _ $mButtons.Button3, _ $mButtons.Button4 Return EndSwitch $bButtonsDisplayed = Not $bButtonsDisplayed If Not $bButtonsDisplayed Then _ShowButtons($mButtons) Return EndIf _HideButtons($mButtons) EndFunc Func _HideButtons(ByRef $mButtons) Local Const $iHideControlFlag = 32 GUICtrlSetState($mButtons.Button1, $iHideControlFlag) GUICtrlSetState($mButtons.Button2, $iHideControlFlag) GUICtrlSetState($mButtons.Button3, $iHideControlFlag) GUICtrlSetState($mButtons.Button4, $iHideControlFlag) EndFunc Func _ShowButtons(ByRef $mButtons) Local Const $iShowControlFlag = 16 GUICtrlSetState($mButtons.Button1, $iShowControlFlag) GUICtrlSetState($mButtons.Button2, $iShowControlFlag) GUICtrlSetState($mButtons.Button3, $iShowControlFlag) GUICtrlSetState($mButtons.Button4, $iShowControlFlag) EndFunc
💡 Wichtig: Die _ToggleButtons() Funktion wird per Maus-Klick ausgelöst, tut aber nichts wenn die Buttons geklickt werden. Also dies ist als Ausnahme definiert und kann erweitert werden. Denn du möchtest ja die Buttons nichts ausblenden wenn du darauf klickst (nehme ich an).
Wenn du Fragen haben solltest, frag' gern 🤝 .
Viele Grüße
Sven -
Abgesehen davon das ich das super toll von dir finde BugFix , habe ich da wirklich keinen wirklichen Ansatz auf Anhieb.
Hoffe natürlich auf Unterstützung durch einige Andere hier noch, doch eine 90 % Lösung ist auch schon mal was. Es müssen nicht immer die 100 % sein 😅 .
Danke und bis später.
Viele Grüße
Sven -
Velted ja es scheint ein Zeitverhalten Problem zu sein, also manchmal ist ein Delay nötig manchmal nicht und an sich scheint es ein Bug in AutoIt an sich zu sein. Hatte mal kurz im englischen Forum gesucht und ähnliche Fragestellungen gefunden, allerdings alles alte Threads - keine Ahnung ob es bereits gefixed sein soll oder nicht 🤔 ?
BigRox also falls dies wirklich ein AutoIt Bug sein sollte, könntest du bspw. für dein Szenario SplashTextOn() und SplashOff() benutzen. Dann musst du gar nicht auf der GUI herumzeichnen 😅 . Ansonsten gibt es auch fertige "Spinner" (loading indicator) im englischen Forum und wahrscheinlich auch hier, die du einbinden kannst. Denn der Experte (einer der Experten, aber der Erste der mir sofort dazu einfällt) UEZ ist auch hier im Forum vertreten und hat mich Sicherheit so'n Spinner parat 🤞 .
Viele Grüße
Sven
Update: Kanashius das ist eine schöne Lösung 👍 . -
Die folgenden zwei Zeilen bringen eine Änderung, die ich glaube von dir BigRox gewünscht ist. Doch das weißt du am besten 😅 ?
- GUICtrlSetState($idBtn_Anzeigen, $GUI_FOCUS) nach dem Button erstellen
- GUICtrlSetState($idEdiText, $GUI_DISABLE) beim Klick auf Button
Danach wird das Edit Control nicht immer wieder in den Fokus gebracht.
Viele Grüße
Sven -
Hi BigRox 👋 ,
kannst du bitte nochmal genau beschreiben, wie das erwartete Verhalten sein soll und was du danach machen willst?
Denn vielleicht gibt es andere Wege deine Zielsetzung zu bewältigen.
Viele Grüße
Sven -
Hi Leute,
hier mal wieder, wie angekündigt, etwas für zwischendurch: Die "Galgenraten" Code Kata.
💡 Ziel: Ist es einen Algorithmus bestehend aus einer oder mehreren Funktionen zu schreiben, der dich "Galgenraten" in der Konsole spielen lässt.- Galgenraten
- Es wird ein Begriff (ein Wort) gesucht, welchen man versucht zu erraten. Dabei kann man entweder Buchstabe für Buchstabe eine Eingabe machen oder gleich versuchen das richtige Wort einzugeben und zu erraten.
- Man hat n Versuche, das Wort zu erraten. Falls der jeweilige eingegebene Buchstabe, nicht im gesuchten Wort vorkommt, wird die Anzahl der verbleibenden Versuche reduziert.
- Entweder man errät das Wort innerhalb seiner Versuche, dann gewinnt man, oder man verliert eben.
🥈 Teil 1: Entwickle die Funktion(en) unter Beachtung der folgenden Vorgaben. Nutze InputBox() als Eingabe1 der Buchstaben/des Wortes und die Console als Output.
- Vorgaben
- Verwende die Wörterliste word-list.au3 #include "word-list.au3" => _WordList() im Anhang, welche einfach nur ein Array mit Wörtern zurück gibt.
- Es soll möglich sein, einen Buchstabe einzugeben (InputBox()) oder auch gleich ein Wort.
- Jeder falsche Buchstabe der nicht im Wort vorkommt reduziert die Versuche.
- Die Anzahl der Versuche richtet sich nach dem zufällig ausgewähltem Wort.
- Angenommen es wird das Wort Tauchen gesucht, welches 7 Buchstaben hat, dann soll die Versuchsanzahl 14 betragen (also doppelt so viele Versuche wie das jeweilige Wort Buchstaben hat).
- Der Begrüßungstext2 des Spiels, in der Console, soll wie folgt aussehen (siehe Spoiler unten).
- Wichtig hierbei ist die Darstellung der gesuchten Buchstaben als Unterstriche mit Leerzeichen dazwischen 😈 🤭 .
Also aus tauchen wird _ _ _ _ _ _ _.
- Wichtig hierbei ist die Darstellung der gesuchten Buchstaben als Unterstriche mit Leerzeichen dazwischen 😈 🤭 .
- Wenn ein falscher3 Buchstabe geraten wurde, sieht es so aus (siehe Spoiler unten).
- Wenn ein richtiger4 Buchstabe geraten wurde, sieht es so aus (siehe Spoiler unten).
- Wenn gewonnen5 wurde, sieht es so aus (siehe Spoiler unten).
- Wenn verloren6 wurde, sieht es so aus (siehe Spoiler unten).
1: Eingabe
2: Begrüßungstext
3: falscher Buchstabe
4: richtiger Buchstabe
Code+---------------+ |--GALGENRATEN--| +---------------+ 💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung. Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche. Wort: _ _ _ _ (7 Versuche noch) Wort: _ _ _ _ (6 Versuche noch) Wort: _ u _ _ (6 Versuche noch)
5: gewonnen
Code
Alles anzeigen+---------------+ |--GALGENRATEN--| +---------------+ 💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung. Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche. Wort: _ _ _ _ (7 Versuche noch) Wort: _ _ _ _ (6 Versuche noch) Wort: _ u _ _ (6 Versuche noch) Wort: r u _ _ (6 Versuche noch) Wort: r u _ _ (5 Versuche noch) Wort: r u _ _ (4 Versuche noch) Wort: r u _ t (4 Versuche noch) Wort: r u s t (4 Versuche noch) 😀 Gewonnen! 4 Versuche übrig, gut gemacht.
6: verloren
Code
Alles anzeigen+---------------+ |--GALGENRATEN--| +---------------+ 💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung. Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche. Wort: _ _ _ _ (7 Versuche noch) Wort: _ _ s _ (7 Versuche noch) Wort: _ _ s _ (6 Versuche noch) Wort: _ _ s _ (5 Versuche noch) Wort: _ _ s _ (4 Versuche noch) Wort: _ _ s _ (3 Versuche noch) Wort: _ _ s _ (2 Versuche noch) Wort: _ _ s t (2 Versuche noch) Wort: _ _ s t (1 Versuche noch) Wort: _ _ s t (0 Versuche noch) 😥 Verloren! Das gesuchte Wort war "rust".
🥇 Teil 2 (optional): Erweitere den Ansatz um die Möglichkeit, die Eingabe entweder direkt in der Console tätigen zu können (anstatt über InputBox() wie im Teil 1) oder überlege dir eine andere Möglichkeit (GUI, file system, what ever).
⚡ Rahmenbedingungen:
- Versuche es möglichst komplett ohne Hilfsmittel und ohne Google Suche.
- Zeitliche Vorstellung für diese Challenge ist um die 50 - 90 min (für Teil 1, Teil 2 muss nicht, kann jedoch gemacht werden 😄).
- Wenn du eine Lösung hast und diese hier postest, dann bitte den Code in Spoiler einbinden, damit jeder selbst entscheiden kann ob er die Lösungsvariante der Anderen sehen möchte oder nicht 😉 .
Ich bin gespannt auf eure Lösungen und wünsche happy coding 👍 .
Viele Grüße
Sven
---------------------
Update: Hier noch ein Video um besser die Aufgabenstellung zu verstehen 😅 .
⚠ Disclaimer: Das folgende Video 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.
---------------------🎬 Code Kata Galgenraten (Aufgabenstellung)
Externer Inhalt www.youtube.comInhalte 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.⌚ Kapitel:
00:00 Einleitung
00:31 Vorgaben beim Spiel gewinnen
02:26 Vorgaben beim Spiel verlieren
03:03 CUI (Consolen App)
04:20 Kontext für nicht Forum-Mitglieder
04:47 Frage nach Lösungsvorschlägen📑 Inhalt:
Kurzvorstellung der Code Kata "Galgenraten" und meiner Aufgabenstellung (Vorgaben) an diese Coding Challange.🎪 Zielgruppe:
Für die Teilnehmer der Code Kata "Galgenraten" im AutoIt Forum.
Mit der Fragestellung wie genau ist die Aufgabenstellung gemeint.🔇 Out of scope:
Ich habe bewusst auf das Zeigen meines Codes, meiner Lösungsvariante verzichtet.
Ebenfalls wurde der Mechanismus wie man von "InputBox()" zur "Consolen App" kommt, nicht erläutert.
---------------------
💡 Eindrücke/Feedback ist natürlich erwünscht, Danke 🤝 . - Galgenraten
-
Stimmt, wie konnte ich das vergessen. Ja klar! Danke Schnuffel .
-
Hi MojoeB ,
am Ende ist es eigentlich egal ob es eine Integration gibt oder nicht. Denn sobald GIT auf dem System installiert ist, kann über jeden Terminal (Windows Eingabeaufforderung, bash, etc.) die GIT Kommandos abgefeuert werden und man sieht den aktuellen Stand.
Oder man nutzt einfach Sourcetree oder GitKraken (sind die beiden am weitesten verbreitesten UI-Tools dazu), wenn einem die Befehle auf Terminal-Ebene nicht zusagen, kein Problem 😀 .
Viele Grüße
Sven -
Guten Abend HansJ54 👋 ,
das geht, ja. Es ist am Ende egal ob du auf Labels (Texte) in der GUI klickst oder auf ein Bild oder auf einen Button.
Sobald der Klick auf das jeweilige Element der GUI (oder auf die GUI selbst) registriert wird, kannst du darauf reagieren und deine Buttons einblenden.
Wie weit bist du denn bis jetzt? Hast du bereits Code den du uns zeigen kannst?
Viele Grüße
Sven -
Danke dir BananaJoe 😊 . Ich erwarte allerdings nichts in dieser Richtung, dafür ist das Publikum einfach zu klein.
Wenn ich auch zugeben muss, dass mir so'n Kram schon bissl Spaß macht 😅 .
Angenehmen Abend noch, bis später.
Viele Grüße
Sven -
⚠ Disclaimer: Das folgende Video 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.
---------------------
Hi zusammen, hier folgt nun eine Kurzvorstellung zu Discord, bzw. konkreter zum Discord Server "AutoIt Community Projects".
Für mehr Kontext schaut euch bitte Post#1 an.
Das Video dient als Hilfestellung für eine mögliche synchronere Zusammenarbeit bei den bevorstehenden Software-Projekt(en).🎬 Discord Server AutoIt Community Projects
Externer Inhalt youtu.beInhalte 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.⌚ Kapitel:
00:00 Einleitung
01:05 Meine Erfahrungen mit Discord
01:47 Grundlegender Aufbau
02:38 Rollen- und Rechtekonzept
04:39 Kategorie Projects
05:17 Kategorie WebDriver
06:04 Kategorie Community
06:18 Mögliche Arbeitsweise
06:40 Bitte um Eindrücke
07:14 Discord Rahmenbedingungen
08:09 Bitte um Feedback📑 Inhalt:
Kurzvorstellung des Discord Servers. Dabei wird das Hauptziel, die Intension bzgl. der Zusammenarbeit in der Community, hervorgehoben.
Rollen- und Rechtekonzept wird erläutert, damit die Berührungspunkte möglichst klein gehalten werden (safety first).🎪 Zielgruppe:
Für Discord-Einsteiger mit der Fragestellung ob dies für die AutoIt Community etwas wäre.🔇 Out of scope:
Ich habe bewusst auf die Installation von Discord verzichtet.
Ebenfalls ging ich nicht besonders auf die mögliche weitere Verwendung des Servers ein (kein Ausblick).
---------------------
💡 Eindrücke/Feedback ist natürlich erwünscht, Danke 🤝 .
Viele Grüße
Sven -
Danke Schnuffel für den ganzen Input. Heute werde ich es nicht mehr zusammengefast in den Post#1 eintragen können, aber vielleicht irgendwann am WE - mal schauen.
Alternativ, fühle dich frei und trage die Ideen selbst ein (hast ja die Rechte 😀).
Ich denke so langsam können wir auch bald "Einsendeschluss" machen und an Voting der Themen gehen, bzw. diese nochmal konkrete beleuchten (pitchen).
Danach geht es auch "schon" los (vielleicht) 😅 .
Guten Abend dir und den restlichen Mitlesenden.
Viele Grüße
Sven -
Oh wow, es gibt Stand "jetzt" (2024-02-02, 13:40 Uhr) bereits über 450 Zugriffe auf dieses Thema - was total toll ist 👌 .
Allerdings ist die Anzahl der eingebrachten Vorschläge, Ideen, Kommentare noch ausbaufähig 😅 .
Also bitte, scheut euch nicht weitere Vorschläge zu machen.
Danke und weiterhin einen angenehmen Tag euch allen.
Viele Grüße
Sven -
Danke dir BugFix für die super Anreicherung des Kontext bzgl. SciTE 👌 .
Von dir wusste ich ja, dass du GIT (und GitHub) nutzt, doch wusste ich nicht wie du es tust (mit SciTE).
Danke dafür und für den Ausblick auf was sich die User hier freuen können, da SciTE noch immer der verbreiteste Editor für AutoIt ist 👍 .
Viele Grüße
Sven -
⚠ Disclaimer: Das folgende Video 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.
---------------------
So werte Community, ich war nun mutig und habe das erste GIT-Einsteiger Video produziert und hochgeladen.
Warum? Bitte schaut euch Post#1 oben an, dann erhaltet ihr etwas mehr Kontext wie dies alles zu Stande kam.🎬 Warum GIT auch für AutoIt?
Externer Inhalt youtu.beInhalte 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.
⌚ Kapitel:
00:00 Einleitung
00:30 Demo-Struktur anlegen
02:08 Erläuterung des Code-Beispiels
04:15 GIT als Ersatz für manuelle Backups
08:46 Änderungen sehen und Fehler finden
11:38 Git Historie
15:02 Zu Zwischenständen springen
17:02 Zusammenfassung
18:21 Übergang zu GitHub
19:15 Feedback📑 Inhalt:
Praktisches Beispiel zur Verwendung von GIT. Wozu dient GIT?
Erläuterung der Anwendungsfälle: Diff, Code Review, Zwischenstände speichern (commits) und zu Zwischenständen zurückkehren ($ git checkout commit hash).🎪 Zielgruppe:
Für GIT-Einsteiger mit der Fragestellung warum sollte ich GIT benutzen.🔇 Out of scope:
Ich habe bewusst auf die Installation von GIT verzichtet.
Ebenfalls werden GUI (UI) Tools wie Sourcetree, GitKraken etc. nur erwähnt, jedoch nicht vorgestellt.
---------------------
💡 Eindrücke/Feedback ist natürlich erwünscht, Danke 🤝 .
Viele Grüße
Sven -
Auch diesmal wieder, herzlichen Dank Oscar 🤝 .