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

Beiträge von chip

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 26. November 2010 um 09:01

    Eine Funktion die beim starten einer Partie aufgerufen wird wäre noch gut, damit man bereits gewisse Sachen inizialisieren kann.

    Also einfach im Interface:

    [autoit]

    Func _Chess_Initialize()

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

    EndFunc

    [/autoit]

    und in der Schach.au3 einfach am Scriptanfang diese Funktion aufrufen.


    Zitat von autoBert


    Nachtrag: Frage zu en passant, da meine Schachkenntnisse ja schon verjährt sind. Ist die Erklärung hierzu in http://de.wikipedia.org/wiki/En_passant richtig? (Ich hatte es anders in Erinnerung). Des weiteren muss der Teilnehmer (also ich) beweisen, dass der gegnerische Bauer unmittelbar davor den Doppelschritt gemacht hat?

    Wenn ein Bauer 2 Felder vorrückt und anschließend direkt neben einem gegnerischen Bauern zum Stehen kommt, so darf dieser geschlagen werden, als würde er nur 1 Feld ziehen. Diese Schlagmöglichkeit entfällt jedoch im nächsten Zug.

    Sieht man ja gut auf dem Wikibeispiel:

    [Blockierte Grafik: http://upload.wikimedia.org/wikipedia/commons/0/09/Ajedrez_animaci%C3%B3n_en_passant.gif]

    Edit:

    Und weiter gehts mit den Fehlern ;). Wenn zu Spielbeginn die Spielerfarbe schwarz ist aber ganz normal weiß mit dem ersten Zug beginn, dann wird _Chess_ComputerTurn nicht aufgerufen sondern _Chess_HumanTurn.

    Naja ich mach doch nicht mit beim µitLight sind einfach zuviele Fehler in dem ganzen Script um es effektiv als Grundlage zur Erstellung einer Schach KI zu verwenden. Da hat man ja mehr damit zu tuen die Limitierungen der Schach.au3 irgendwie hinzubiegen als mit der eigentlichen KI. Zeigt auch schon allein, das es keine gemeinsamen Array gibt in dem die Positionen gespeicher sind. Dies bedeutet z.b. dass wenn schwarz nun von d8 auf d1 zieht __Chess_Wer_Auf_Feld("d1") trotzdem noch ausgibt, dass d1 im besitz von weiß ist. Umgekehrt also wenn weiß von d1 nach d8 zieht gibt __Chess_Wer_Auf_Feld("8") richtigerweise aus, dass nun weiß darauf ist. Bedeutet also, dass man nun nochmal seperat eine Liste der Positionierung der Figuren machen müsste und diese auch Auswerten, was wiederrum auf kosten der Laufzeit geht.

    Kurz und knapp. Schönes Script um Schachzüge zu animieren, aber um wirklich darauß ein Spiel zu machen bei dem man aktiv Züge macht oder gar eine KI nicht zu gebrauchen.

    Wünsche allen anderen trotzdem noch viel Spaß bei diesem µitLight.

  • ICQ machen...

    • chip
    • 25. November 2010 um 15:00

    Ist eine UDF für OSCAR-Protokoll.

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 25. November 2010 um 07:45
    Zitat von MatthiasG.

    Was meinst du mit Eröffnungsbibliotheken?

    Wenn du eine Datenbank mit Eröffnungen meinst, die von dir selbst stammt, dann ja. Wenn sie von dritten stammt, dann leider nicht.

    Mh von dritten Stammt eigentlich alles. Jeder Spielzug in Schach und jede eröffnungstrategie hat irgendjemand schonmal aufgeschrieben. In dem Fall ist es dann also nicht möglich überhaupt die KI einigermaßen realistisch zu machen. Alleine schon diese Tabelle hier: klick mich hat alle möglichen Züge zu Spielbeginn gelistet, ergo kann die KI keine einzigen Zug machen ohne auf irgendeine weiße eine Zug dieser, von dritten erstellten, Liste auszuführen. Es gibt im Schach schlicht und einfach keinen Zufall.

    Man sollte das Ziel dieses µitLight nochmal deutlicher machen. Ist es nun das Ziel eine möglichst gute KI zu erstellen oder einfach nur eine reine Plausibiltätsprüfung zu machen? Wäre nett wenn das mal klar gesagt werden würde. Weil Schach-Engine ist wie gesagt schon die Schach.au3 und damit wäre eigentlich garnichtsmehr zu machen.

    Zitat

    Eine Spiel-Engine (engl. Game Engine [ˈgeɪmˌɛndʒɪn]) ist ein Computerprogramm, das den Spielverlauf steuert und für die visuelle Darstellung des Spieleablaufs verantwortlich ist.

    Hier noch ein paar Fehler:

    Du schreibst bei _Chess_Validate da hier "4 Parameter, 2 davon optional" aber gleichzeitig schreibst du unter Anmerkungen das "Bei einer Rochade bleiben $Start und $End leer!" also sind nicht zwei von vier optional sondern alle sind optional.

    Bei _Chess_HumanTurn schreibst du "An Schach-Regelungen denken!" da allerdings vor diese Funktion die _Chess_Validate aufgerufen wird ist ja hier nichtsmehr zu regeln.

    Wenn man in der aktuellen Version Interface.au3 ausführt ist auf dem Schachbrett keine Inputbox mehr und auch der Button "Befehle..." ist nicht vorhanden.

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 24. November 2010 um 21:53

    He autobert das hab ich schon vor XD.

  • StringBetween Error - Script trotzdem weiterlaufen lassen?

    • chip
    • 24. November 2010 um 09:53

    Wie soll ContinueLoop bei einer Select/Switch helfen?

  • StringBetween Error - Script trotzdem weiterlaufen lassen?

    • chip
    • 24. November 2010 um 09:37
    [autoit]

    Case $gui = $getclip

    $url = GUICtrlRead($combobox)
    $source = _INetGetSource($url)
    $stream = _StringBetween($source,'hqv: "','"')

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

    If @Error Then
    MsgBox(48, "Fehler!", "Video-Stream konnten nicht gefunden werden!")
    _Main()
    EndIf

    [/autoit]
  • [Beispiel] Adventskalender

    • chip
    • 23. November 2010 um 22:11

    Es wird ein Ordner Images angelegt und in diesem Ordner die Datei Advent.ini darin wird gespeichert welche Fenster schon geöffnet wurden.

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 23. November 2010 um 20:34
    Zitat von MatthiasG.


    Menschlicher Spieler kann auch schwarz auswählen, ist aber per default weiß. Wenn ihr auf den Button Befehle drückt, findet ihr dort den Befehl "restart" beschrieben. Rufe ich in dem Input restart b auf, bin ich als menschlicher Spieler schwarz.

    Das ist ein wichtiger Punkt zu wissen. Weil ich hätte nun die KI nur für die Farbe schwarz gemacht. Wenn beide Farben aber gespielt werden sollen muss man da komplett anders rangehen.

  • S-Video Adapter für Laptop ?

    • chip
    • 23. November 2010 um 14:44

    Hier: http://tinyurl.com/2dbmgq9

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 23. November 2010 um 12:40

    Noch eine Frage, ist sqlite erlaubt?

  • [Läuft] µitLight Dezember '10/Januar '11

    • chip
    • 23. November 2010 um 08:57

    Also irgendwie geht die Schach.au3 nicht wirklich. Wenn man Interface.au3 so startet wie du sie gemacht hast sollten ja zumindestens die Schachfiguren schon aufgestellt sein. In der Schach.au3 wird zumindestens die _NormalPosition() aufgerufen. Man erhält aber nur ein leeres Schachbrett.

    Gibt zwei Lösungen dafür. Entweder die Interface.au3 in den Ordner Schach mit rein oder die Pfade in der Schach.au3 anpassen. Bei @ScriptDir wird immer vom startenden Script ausgegangen und nicht vom includierten wodruch dei Pfad dann nicht stimmen können.

    Noch eine Frage und zwar, ist der menschliche Spieler immer weiß oder kann man es auch so machen, dass der menschliche Spieler schwarz ist?

  • HDD Partition erstellen

    • chip
    • 22. November 2010 um 15:17

    Ja geht und zwar über Kommandozeile: klick mich

  • Login Tool

    • chip
    • 22. November 2010 um 11:17

    Es verstoßt gegen die AGB des Spiels:

    Zitat

    (III) Direktlogins
    Der Login in die Spieleaccounts ist nur über die Startseite erlaubt. Automatisiertes Öffnen des Accounts, unabhängig davon, ob dabei die Startseite angezeigt wird oder nicht, ist nicht gestattet.

    Mods bitte closen.

  • TCP Verbingung kappen

    • chip
    • 22. November 2010 um 08:05

    Wenn er es nur kappen will reicht es wenn er den Kommandozeilenbefehl "arp -d IP_Adr" macht. Nur wie gesagt wird sich die Verbindung bei nächsten Paket wieder aufbauen.
    Wenn es es aber blockieren will dann ist es am einfachsten einen Eintrag in der Hostdatei zu machen welche die Anfrage ins leere umleitet.

  • Teamspeak 3 UDF

    • chip
    • 22. November 2010 um 07:55

    UDF = User Defined Function = Benutzerdefinierte Funktionern

    Eine UDF ist im Grunde ein Sammlung von Funktionen an die Parameter übergibts und die eine Rückgabewert liefern. Welche Parameter übergeben werden müssen und was der Rückgabewert bedeutet kannst du in den jeweiligen Funktiosnkommentaren in der UDF nachlesen.

  • TCP Verbingung kappen

    • chip
    • 22. November 2010 um 07:50

    Kappen oder blocken?

    Weil wenn sie nur kappst dann wird das entsprechende Programm einfach mit dem nächsten Paket welches es sendet die Verbindung wieder neu aufbauen.

  • Teamspeak 3 UDF

    • chip
    • 22. November 2010 um 07:42

    Es ist eine Standardkonforme UDF und wie jeder andere UDF zu benutzen. Ich denke bei dir ist das Problem, dass du generell nicht weißt wie man eine UDF verwendet.

  • Teamspeak 3 UDF

    • chip
    • 21. November 2010 um 19:37

    Kannst du damit auch. Aber was für ein Fenster du da nun erwartest ist mit ein Rätsel. Du erhälst von jedem Befehl einen Rückgabewert den auswerten kannst.

  • PHP Login Sicherheitstheorie

    • chip
    • 21. November 2010 um 01:16

    Allerdings reicht in dem Fall Username und Passwort aus um in den Account zu kommen. Da man ja zum berechnen des SHA1-Hashs der Sessionkey vom Server geschickt bekommt und die Berechnung immer gleich erfolgt.
    Wenn dann müsste man Tokensystem verwenden, sprich Server und Client berechnen mit einem jeweils einmaligen Hash temporär einen Loginkey uns zwar ohne, dass Daten vom Server zum Client gesendet werden.

  • PHP Login Sicherheitstheorie

    • chip
    • 21. November 2010 um 00:33
    Zitat von Sprenger120

    Also der grundlegende Schutz fängt schon bei der Datenbankabfrage an.
    erstmal alle Informationen die von außen kommen müssen mit mysql_real_escape_string escaped werden.
    Dann zu der eigentlichen Abfrage. Spalten und Tabellennamen in `` und Daten in '' damit kann man verhindern das ein OR '' = '' angehängt wird.

    Erst lesen dann Posten. Schon im ersten Satz steht "wenn er vor sql-injection geschützt ist".

    Zitat von Darter

    EInfach bei der Registrierung schon festlegen, dass das passwort länger al 8 Zeich sein muss und nicht glehc sein darf wie der Anmeldename, außerdem sollte man ebenfalls einbinden, dass das pw nicht nur aus einem einzellnen Zeichen bestehen darf, also z.b. 9 mal die 1 ^^.

    Wenn man das alles berücksichtigt wird so ein passwort, wenn man es nicht weiter gibt nie zu knacken sein.

    Da sag ich einfach mal das dieser Aussage falsch ist. Nehmen wir an du heißt Michael und bist 1980 geboren. Nun nimmt als dein Passwort "michael80". So ein Passwort sehr sehr sehr leicht zu erraten und es gibt viele die solche Passwörter haben.

    Zitat von progandy

    Edit: Es gibt noch eine weitere Möglichkeit, den Login abzusichern. Du erstellst ein AutoIt-Programm, das mit Hilfe eines für jeden Nutzer eindeutigen Strings und eines Sessionkeys pro Anmeldung einen Hash generiert, den der Nutzer zum Login angeben muss, das ist auch etwas zusätzliche Sicherheit.

    Was allerdings dann nur auf einem Windowsserver ginge, der das Autoitscript compiliert und dann an den User beim registrieren zum Download ausgibt. Das wären wiederum aber erhöhte Kosten durch die Serverlizenz da normaler Webspace das nicht machen kannst. Alternativ wäre höchstens noch eine seperate Ini.
    Nur müsste man das Programm dann überall dabei haben wenn man sich irgendwo anders einloggen will. Bei ICQ hat man immer die Möglichkeit noch ICQ2GO zu nutzen.

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™