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

Beiträge von Yjuq

  • Prüfen ob AdlibRegister registriert ist

    • Yjuq
    • 6. Oktober 2014 um 12:18

    "If the function name is not specified then the last registered function will be unregistered."

    Ein einfaches AdlibUnregister reicht aus um die letzten Aufruf von AdlibRegister wieder rückgängig zu machen. Wenn du jedoch tatsächlich solche abfragen bewerkstelligen möchtest, dann schreib dir ne funktion welche die nötigen informationen speichert und bei bedarf ausspuckt. Dann kannst du auch minx sein Kommentar einfach ignorieren. ^^

  • Merkwürdiger Rechenfehler

    • Yjuq
    • 5. Oktober 2014 um 20:03

    Ah, danke für die Erleuchtung ^^
    Damit wäre meine frage auch schon gelöst. :)

  • Merkwürdiger Rechenfehler

    • Yjuq
    • 5. Oktober 2014 um 17:47

    Hallo, ich habe einen merkwürdigen Rechenfehler bei AutoIt gefunden. Weiß jedoch nicht weshalb dieser verursacht wird. Diesen Rechenschritt wird innerhalb eines Algorithmus bei mir ausgeführt:

    [autoit]

    $tInt = DllStructCreate('UINT64 val')
    $tInt.val = 1234567890 * 1e9 + 123456789
    ConsoleWrite($tInt.val & @CRLF)

    [/autoit]

    Ich bekomme da als Ergebnis 1234567890123456769 heraus, jedoch müsste dies 1234567890123456789 lauten. Die vorletzte Ziffer ist also falsch. Weiß einer warum das so ist?

  • SciTE aktualiesieren

    • Yjuq
    • 11. September 2014 um 15:24

    Hey, manchmal ist es sinnvoll doch tabs zu verwenden. Daher würde ich da auch nicht in den einstellungen rumpfuschen so wie es in den verlinkten thread dort beschrieben ist. Die scite liefert da selber was mit, irgendwo im menü (kann gerade nicht nachgucken wo genau) befindet sich ein eintrag (relativ weit oben, erster oder zweiter eintrag) "open files always here" (oder so ähnlich). Da ist ein haken daneben, diesen musst du einfach mur entfernen und skripte die geöffnet werden, werden in ein eigenes fenster angezeigt. Lg :)

  • BlueStacks Mauseingabe per Tastatur

    • Yjuq
    • 10. September 2014 um 18:14

    chip:
    Dein Beitrag ließt sich ziemlich negativ. ^^
    Ich bin nun mal wissensdurstig und möchte mir mal ansehen ob das überhaupt so lösbar ist wie ich mir das vorstelle. Darüber hinaus hat das einen lerneffekt. Es ist zwar durchaus einfacher vorhandene programme zu verwenden, macht jedoch nur halb so viel spaß! :p

    Jaja, ich weiß,... Ich bin ein Hoffnungsloser Fall für sich! :D


    Kanashius:
    Danke für deine beiden Beiträge, derzeitig versuche ich das tatsächlich über Messages zu lösen, aber die Geschichte dass beide Mauszeiger gleichzeitig klicken ist doch durchaus komplizierter als wie ich es mir vorgestellt habe. Ich glaube solangsam muss ich einsehen dass das so nicht klappt. Aber wenn der Klick schnell genug erfolgt sollte das wohl auch akzeptabel sein. Aber trotzdem werde ich's vorerst weiter probieren. Ich melde mich wenn es was neues gibt. Bis dahin wäre ich für weitere Vorschläge dankbar. :)

    ~ Make

  • GDIPlus verschwindet

    • Yjuq
    • 9. September 2014 um 14:50

    Ehrlich gesagt ist das viel zu umständlich. Kannst du uwar so lachen aber halt unnötig ^^

    Verschieb einfach die gdi aufrufe die du da machst in ne funktion und ruf diese in der hauptschleife stãndig auf. Fallst du das nicht mehr ändern möchtest kannst du's so lassen, weißt es aber fûr's nãchste mal :)

  • BlueStacks Mauseingabe per Tastatur

    • Yjuq
    • 8. September 2014 um 19:00

    Wenn das so einfach wäre hätte ich es schon gelöst ^^

    Das problem ist, dass ich nicht gleichzeitig mit der maus einen virtuellen steuerknüppel bedienen kann und gleichzeitig einen mausklick ca. 500 px daneben auf einen gezeichneten angtiffsbutton machen kann. Da es sich dabei nicht um windows controls handelt fallen autoit interne funktionen dazu schon direkt weg. Natürlich soll die maus beim anklicken des buttons nicht vom steuerknüppel loslassen da ich ja sonst nicht mehr steuern kann. ^^

    Aber hab mal bisschen in msdn herumgestöbert zu "mouse". Hab mir mal die mouse events angeschaut, ob das damit machbar ist? Muss ich noch ausprobieren, trzd. bin ich für weitere lösungsvorschläge offen.

  • BlueStacks Mauseingabe per Tastatur

    • Yjuq
    • 8. September 2014 um 15:00

    Dies ist für controls gedacht. Dabei wird eine message an das fenster gesendet das ein CONTROL angeklickt wurde. Mein problem ist allerdings, dass sich in dem bluestacks fenster keine windows controls befinden. Daher bringt mich das nicht wirklich weiter. Aber ich werde dennoch google weiter anstrengen. ^^

  • BlueStacks Mauseingabe per Tastatur

    • Yjuq
    • 8. September 2014 um 12:57

    Hey chip, danke für den link, jedoch wollte ich das gerne selber umsetzen da ich verschiedene eingabegeräte verwenden möchte (controller, joystick, tastatur). Wenn ich das richtig gelesen habe werden 2 mäuse dort benötigt!?

    chakratos:
    Klar, hilfe brauch ich nur bei der erzeugung eines zweiten funktionsfähigen mauszeigen auf den bildschirm. Der muss nicht mal angezeigt werden da dieser ehh mit den oberen genannten eingabegeräten gesteuert werden soll. ^^

  • BlueStacks Mauseingabe per Tastatur

    • Yjuq
    • 7. September 2014 um 03:53

    Hallo, ich habe mir das Programm BlueStacks herunter geladen.
    Dabei handelt es sich um ein Android Emulator.

    Die Steuerung die man für gewöhnlich mit den Fingern am Handy macht übernimmt nun die komplette Maus.
    Ich würde gerne das ganze nun für die einzelnen Spiele für bestimmte Regionen Mauseingaben versenden.
    Die schwierigkeit besteht aber hier, dass ich unter Umständen die eine Maus gedrückt halten muss (Spieler Bewegung) und die andere einen Angriff Button betätigen muss.
    Wie gesagt, ich möchte das über die Tastatur realisieren. Es soll lediglich die Tasten in Maus Daten umwandeln.
    Leider fehlt mir ein Ansatz um 2 Mauseingaben gleichzeitig zu erstellen, (unter umständen sogar 3 ^^)

    Hat da jemand eine Idee? Noch besser wäre es wenn man an das Fenster direkt die entsprechenden Mauskoordinaten manipulieren kann ohne die Maus an sich zu bewegen.
    Ich hoffe man versteht mein Problem. Ich bitte um ein paar Ansätze, Skripte dazu erwarte ich nicht. :)

  • Variablen "auslesen" und ändern

    • Yjuq
    • 4. September 2014 um 12:17

    Hi, du benötigst den base pointer der zu ãndernen variable. Der rest ist dann nur noch das ganze im ram auszulesen und ggf. Zu ändern. Bevor ich allerdings erkläre wie das genau funktioniert würde ich dennoch gerne wissen welchen zeweck das hat? Um was für ein programm handelt es sich denn und warum ist es nötig den inhalt der variable extern zu ändern?

  • Tic Tac Toe Spiel "KI" möglichkeiten

    • Yjuq
    • 19. August 2014 um 01:09
    Zitat

    Ich weiß leider nicht wie ich das einfach genug erklären kann sodass es jemand der nicht ich ist versteht.

    Schöner Satz James ^^

    Im Grunde musst du nur jede mögliche Spielsituation nachstellen und auswerten.
    Du hast für gewöhnlich ein Spielfeld[3][3] und die Ausgangssituation. Bei Spielbeginn ist das Feld ja komplett leer. Aber nach einigen Runden könnte das Feld folgendermaßen aussehen:

    * X *
    X O O
    * O X

    Die Frage ist nun, was ist der bestmögliche Zug in dieser Spielsituation? Ein gescheiter Mensch sieht das bestimmt direkt, jedoch geht es ja darum der KI dies klar zu machen. :)

    Dazu müssen erst alle Spielsituationen dargestellt und bewertet werden:

    Code
    * X *
                        X O O
                        * O X
           ______________/|\______________
          |               |               |
        * X *           X X *           * X X
        X O O           X O O           X O O
        X O X           * O X           * O X
       __/ \__         __/ \__         __/ \__
      |       |       |       |       |       |
    O X *   * X O   X X *   X X O   * X X   O X X
    X O O   X O O   X O O   X O O   X O O   X O O
    X O X   X O X   O O X   * O X   O O X   * O X
      |       |       |       |       |       |
      |       |       |       |       |       |
    O X X   X X O   X X X   X X O   X X X   O X X
    X O O   X O O   X O O   X O O   X O O   X O O
    X O X   X O X   O O X   X O X   O O X   X O X
      |       |       |       |       |       |
      |       |       |       |       |       |
    * * *   + * *   + * +   + * *   + * +   * * *
    * * *   * * *   * * *   * * *   * * *   * * *
    * * *   + * *   * * *   + * *   * * *   * * *
    
    
    
    
    4 * 2
    * * *
    2 * *
    Alles anzeigen

    Die letzte Zeile stellt dabei die Auswertung dar. Dabei wurden alle freien Felder (von der Spielsituation ausgehend) auf Sieg oder Niederlage bewertet. Alle Felder die zu einer Siegesreihe dazu gehören wurde mit + markiert, jedes Feld (in diesen Beispiel nicht dabei) welches zu Niederlagenreihe gehört mit – markiert. Zum Schluss werden alle Felder miteinander ausgewertet. Alle + und – zusammen gezählt und man erhält je nach Spielsituation die „Spielstärke“ des einzelnen Feldes.

    Dazu habe ich ein kleines Skript geschrieben. Die Funktion welche die KI darstellt arbeitet rekursiv (ruft sich selber auf) und stellt so jede Mögliche Spielsituation dar. Jedoch habe ich irgendwo einen Denkfehler eingebaut und die Feldpunkte werden nicht richtig vergeben. Darum kümmere ich mich aber noch. Es demonstriert aber wie solch eine KI in etwa realisierbar ist. Zeile 19 (ist auskommentiert) enthält die „Suchtiefe“. Diese kann man einstellen wenn man die Vorberechnungen der KI begrenzen möchte. Ziemlich praktisch um z.B. die Schwierigkeitsstufe einzustellen.

    Achja, das ganze lässt sich auch noch optimieren. Viele Spielsituationen sind ja einfach nur „gedreht“ oder „gespiegelt“. Aber ich hatte keine Lust das für ein so banales Spiel wie TicTacToe zu beachten. ^^

    Spoiler anzeigen
    [autoit]

    ; Hinweis: X ist immer Spieler, O stetig die KI

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

    #include <Array.au3>
    Global $aPlan[3][3] = _
    [['', 'O', ''], _
    ['O', 'X', 'X'], _
    ['', 'X', 'O']]

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

    _TTT_KI($aPlan)
    _ArrayDisplay($aPlan)

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

    Func _TTT_KI(ByRef $asField, $bPlayer = False)
    Static $iLevel, $aiPoints[3][3]
    Local $iX, $iY, $bWin, $aiCoord[3], $asCopy = $asField, $i

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

    ; Suchtiefe festlegen
    ;~ If $iLevel = 5 Then Return

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

    ; Prüfen ob Player im nächsten Zug gewinnen kann:
    If Not $iLevel Then
    For $iX = 0 To 2
    For $iY = 0 To 2
    If Not $asField[$iX][$iY] Then
    $asField[$iX][$iY] = 'X'

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

    If _TTT_Win($asField, True) Then
    $asField[$iX][$iY] = 'O'
    Return
    EndIf

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

    $asField = $asCopy
    EndIf
    Next
    Next

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

    ; Punkte für kommende Spielbewertung neutralisieren:
    For $iX = 0 To 2
    For $iY = 0 To 2
    $aiPoints[$iX][$iY] = 0
    Next
    Next
    EndIf

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

    ; Spielsituation bewerten:
    For $iX = 0 To 2
    For $iY = 0 To 2
    If Not $asField[$iX][$iY] Then
    $asField[$iX][$iY] = ($bPlayer ? 'X' : 'O')

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

    If _TTT_Win($asField, $bPlayer) Then
    $aiPoints[$iX][$iY] += -1 ^ $bPlayer
    Return True
    Else
    $iLevel += 1
    $bWin = _TTT_KI($asField, Not $bPlayer)
    $iLevel -= 1

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

    If $bWin Then $aiPoints[$iX][$iY] += -1 ^ $bPlayer
    EndIf

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

    $asField = $asCopy
    EndIf
    Next
    Next

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

    ; Beste Spieloption auswählen:
    If Not $iLevel Then
    For $iX = 0 To 2
    For $iY = 0 To 2
    If $aiCoord[0] < $aiPoints[$iX][$iY] Then
    $aiCoord[0] = $aiPoints[$iX][$iY]
    $aiCoord[1] = $iX
    $aiCoord[2] = $iY
    EndIf
    Next
    Next
    _ArrayDisplay($aiPoints)
    $asField[$aiCoord[1]][$aiCoord[2]] = 'O'
    EndIf
    EndFunc

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

    ; Prüfe ob Player oder KI gewonnen hat:
    Func _TTT_Win(ByRef $asField, $bPlayer)
    Local $sPlayer = ($bPlayer ? 'X' : 'O')
    Local $i, $bWin

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

    For $i = 0 To 2
    $bWin = ($bWin Or ($asField[$i][0] = $sPlayer And $asField[$i][1] = $sPlayer And $asField[$i][2] = $sPlayer))
    $bWin = ($bWin Or ($asField[0][$i] = $sPlayer And $asField[1][$i] = $sPlayer And $asField[2][$i] = $sPlayer))
    Next

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

    $bWin = ($bWin Or ($asField[0][0] = $sPlayer And $asField[1][1] = $sPlayer And $asField[2][2] = $sPlayer))
    $bWin = ($bWin Or ($asField[0][2] = $sPlayer And $asField[1][1] = $sPlayer And $asField[2][0] = $sPlayer))

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

    Return $bWin
    EndFunc

    [/autoit]
  • [spiel] Wünsch dir was !

    • Yjuq
    • 13. August 2014 um 18:07

    Der Kaffee hat die gleiche Temperatur wie die Sonne. Die gute Porzelan Tasse sowie der antike Tisch von deiner Oma sind ist nicht mehr zu gebrauchen. :)

    Ich wünsche mir Peter Bursch's Gitarrenbuch 2 damit ich neue Spieltechniken lerne. ^^

  • Nächstes Tutorial Thema?

    • Yjuq
    • 13. August 2014 um 17:48
    Zitat

    Allgemeine Tutorials für den Einsteiger, spezielles für Spezialisierung.

    Klar, spricht ja auch nichts dagegen. Sicherlich will man irgendwann vom "allgemeinen Programmieren" weg kommen und spezialisiert sich auf einzelne Gebiete. Finde ich auch gut von minx das er bereit ist sein Wissen mit uns zu teilen, jedoch ist die andere Frage: Wieviele User werden das erworbene Wissen später auch brauchen? Was nützt es Spanisch zu lernen wenn du nie in deinem Leben auf nen Spanier triffst? :D

    Ich glaube auch was Andy meinte (und was ich auch meine) dass die Themen tatsächlich nur für eine Hand voll User hier im Forum auch nützlich sind. So zmd. meine Einschätzung. Und da sollte sich minx überlegen ob er sich tatsächlich die Mühe dann für diese paar Leute machen möchte.

    Prinzipiell bin ich immer für Tutorials, es kann nie genug Quellen geben um neues Wissen zu erlangen. :)

  • [spiel] Wünsch dir was !

    • Yjuq
    • 13. August 2014 um 01:54

    Kanashius: Wer sagt denn das ich Hetero bin? ^^

    Dein Wunsch wird dir erfüllt, jedoch wird er sich zukünftig dann in deinen Account einloggen und diesen stattdessen nutzen.

    Ich wünsche mir ein Paar 1,70m Stelzen aus Fichtenholz damit ich von oben auf euch herab sehen kann. :D

  • Nächstes Tutorial Thema?

    • Yjuq
    • 13. August 2014 um 00:12

    Da geb ich Andy recht, mich selber würden zwar alle themen sehr interessieren, jedoch wüsste ich nicht was ich großartig damit anfangen soll.

    Die Themen sind sehr speziell und und werden wahrscheinlich nur für eine handvoll leute in diesem forum von nutzen sein. Der rest geht sozusagen leer aus. Wer sich damit beschäftigen will findet genug informationen im web. Viel besser wäre ein tutorial über bereits bestehende bibliotheken und deren verwendung (als beispiel). Z.b. das GDI+ Tutorial hier im Forum, es erklärt alles nötige zu GDI+ und ist für viele Gebiete anwendbar. Oder Tutorials zum optimieren von code etc. sind nicht schlecht. Vielleicht auch um hier und da geschwindigkeit in autoit zu bringen. Solche themen würden sicherlich mehr user ansprechen und wäre auf viele möglichen gebiete anwendbar.

    Wie gesagt: Themen sind interessant, meines erachtens aber zu speziell.

  • [spiel] Wünsch dir was !

    • Yjuq
    • 12. August 2014 um 23:44

    Klar, du bekommst absolute Immunität, und weil ich so nett bin biete ich dir das für ein Schnäppchenpreis von 10.000€ an. :D

    Ich wünsche mir dass es in meiner Beziehung besser laufen würde. :/

  • cdm, ein "Oldy" ist nun auch dabei!

    • Yjuq
    • 12. August 2014 um 13:56
    Zitat

    1. Probe (mach' ich bei jeder neuen Sprache): gibt es ein GoTo oder so was schmutziges? Hurra, NEIN!


    Die GoTo Funktionalität gehörte früher auch zum Gesamtpaket von AutoIt dazu. :D
    Das diese aber auch so verrufen ist... Es ist durchaus möglich sauberen Code auch mit GoTo's zu schreiben. Ab und zu vermisse ich Sie schon mal wenn mich die Schleifen an meine mentale Grenzen bringen. Es geht aber auch ohne. ^^

    Herzlich Willkommen! :)

  • Focus auf anderes Control funktioniert, aber Text Cursor immer noch im alten Control

    • Yjuq
    • 9. August 2014 um 15:08

    0x743B99D0 müsste eigentlich die Prozedur in der User32.dll sein wenn ich mich nicht irre.
    Würde man vor dieser Prozedur eine weitere einfügen und die DLL neu kompilieren so dürfte sich der Wert auch ändern.
    Hätte man diesen Wert nun als Konstante dann könnte es einen schwerwiegenen Fehler geben wenn man an der DLL nun irgendetwas ändern würde.

    Kann aber auch sein das ich mich irre.

  • makeArt | simple ASCII-Art Grafikbibliothek

    • Yjuq
    • 1. August 2014 um 08:35

    Jaja, kaum macht da wer was interessantes muss Andy mit seiner eigenen Arbeit pralen. :D
    Und dann noch mit nem Skript aus 2010, ich weiß ja nicht so recht. :p
    Gelungenes Skript! Sieht wirklich interessant aus. ^^

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™