Tictactoe

Aus MINT.lentner.net
Zur Navigation springen Zur Suche springen

Tic Tac Toe ist ein klasse Spiel, das sich eignet, verschiedene spieltheoretische Ansätze für Spieleprogrammierung bis hin zur KI zu entwickeln:

  1. Man kann Gedanken eines Einsteigers einfach codieren: Wenn die Situation so und so ist, dann mach das und das ... . Sozusagen ein Baumdiagramm in eine Programmiersprache übersetzt. Machbar und auch gar nicht doof, weil mann einfache Dinge am Ende sehr gut hinkriegt. Aber wenn man von Anfang an optimal sein will, ist das schon a bisserl uferlos. Aber man kann sich ja als Bot wie ein menschlicher Einsteiger verhalten: Erst mal probieren (also random-Strategie), dann, wenn's absehbar wird hart programmiert handeln und sich an das Schema des Programmierers halten..
  2. Durch Abstraktion kann man ähnliche Situationen zusammenfassen: "Wenn er am Eck anfängt, dann reagiere immer so und so". Dadurch werden auch die uferlosen Anfangssituationen bewältigbar.
  3. Durch Rekursion kann man "vom Ende her denken" und immer das tun was zu "einer Gewinnstellung" führt. Gewinnstellungen sind wiederum die Stellungen, die dem Gegner nur "Verluststellungen" hinterlassen. Zu Ende gedacht, gibt es nur Gewinn- und Verluststellungen. Also ..., einfach nur zu Ende denken! (brute force)
  4. Rekursion arbeitet den kompletten Entscheidungsbaum top-down ab, das verursacht manchmal Speicherüberläufe. Sogenannte iterative Algorithmen arbeiten den Baum left-right ab. Dauert vielleicht, muss aber keine offenen Probleme auf "einem Stack" bereithalten.
  5. Ist das alles durch Speicher- oder Rechenleistung bewältigbar, könnte man sich das alles auch "merken", "vorbereiten" und in einer "Erfahrungsdatenbank" vorhalten und zur Spielzeit abfragen.
  6. Schließlich könnte ein Algorithmus auch durch Erfahrung lernen und "Erfahrung" aufheben. Ein Algorithmus, der macht, was sich in der Vergangenheit bewährt hat oder unterlässt, was schlecht war, ... das geht schon in Richtung KI. Er lernt. Wie "wirklich intelligent" er ist, hängt natürlich davon ab, wie gut er ähnliche Situationen erkennt! Sonst ist es nur ein "on-the-fly"-Erstellen der obigen Datenbanken.


Also los! Das Spiel soll eine Webseite werden, also gilt es html und JavaScript zu lernen:

Schritt 1: Nötige html und JavaScript-Kenntnisse

a - Ein einfaches Design in html erstellen

http://www.lepirate-rosenheim.de/privat/tictactoe/tictactoe1.html

b - Webseiten-Elemente mit JavaScript manipulieren

http://www.lepirate-rosenheim.de/privat/tictactoe/tictactoe2.html

c - Erste Abstraktion: Mit parametrisierten Funktionen arbeiten

http://www.lepirate-rosenheim.de/privat/tictactoe/tictactoe3.html

d - Ein Spielsituationen-Designer - Erser Schritt zu einem Testbett

http://www.lepirate-rosenheim.de/privat/tictactoe/tictactoe4.html

e -

http://www.lepirate-rosenheim.de/privat/tictactoe/tictactoe5.html