Schachprogramm einfach entwickeln?
Moin,
vor einiger Zeit fragte mich ein Freund, ob man nicht als Projekt für Schüler ein Schachprogramm entwickeln könnte. Ich sagte ihm, dass ich mich einmal darüber informieren müsste.
So, das Problem ist nun folgendes:
Das Programm sollte nicht die Grundstrukturen von Java übersteigen - Klassen, Objekte, GUI, etc.
Ich habe mich im Internet mal über die Algorithmen schlau gemacht und erfahren, dass diese doch scheinbar etwas komplex sind, vor allem für Java-Anfänger.
Meine Frage ist nun: Kennt ihr einfache, nicht zu komplexe Algorithmen, die man gut erklären kann?
Das Schachprogramm muss keinen Weltmeister schlagen können, aber es sollte schon plausible Züge machen können.
Gibt es überhaupt einfache Algorithmen für solche Anwendungen, oder muss ich mir etwas anderes überlegen?
Danke schon mal für eure Antworten.
LG Willibergi
7 Antworten
Ich tendiere zu Nein. Wie Sie bereits gesagt haben, sind diese Algorithmen in der Tat sehr komplex. Ich weiß nicht, wie viele Wochenstunden Sie haben, aber die Zeit wird wahrscheinlich nicht ausreichen.
Selbst eine einfache Alpha-Beta-Suche mit binärem Suchbaum dauert einfach zu lange, vernünftig zu implementieren, da es eben sehr viele Entscheidungskriterien zu beachten gilt. Auch hat Java bei großen Datenmengen unschöne Randerscheinungen.
Stattdessen schlage ich Ihnen z.B. Vier-Gewinnt als Projekt vor.
Auch hat Java bei großen Datenmengen unschöne Randerscheinungen.
Bitte, was?
Stattdessen schlage ich Ihnen z.B. Vier-Gewinnt als Projekt vor.
Keine schlechte Idee!
Werde ich mir mal überlegen. ;)
LG Willibergi
Mensch ärgere dich nicht
überschaubares GUI, einfache Regeln.
Ausbaubar:
Hot Seat (Spieler wechseln sich am Rechner ab)
vs Netzkommunikation
Computer als Supervisor (der die Einhaltung der Regeln überwacht) oder als Spieler mit "künstlicher Intelligenz".
Ist aber kein Projekt für zwei Wochen, wenn etwas dabei herauskommen soll.
Ein Schachprogramm dürfte zu komplex werden. Alleine eine brauchbare Bewertungsfunktion einer beliebigen Schachstellung, die sich aus den Zügen zwischen SchülerInnen und Computer entwickelt, dürfte locker einige Schuljahre brauchen.
Interessanter wäre ein Turnierprogramm, dass Paarungen für Einzel- und Mannschaftskämpfe ermittelt und auswertet wäre da interessant.
Eingabe der Spielernamen, -vereine, Ergebnisse, Turnierkopfdaten (Ort, Datum, Zeit …), Auswertung der Ergebnisse, Auslosung neuer Runden bei Turnieren nach Schweizer System, wo nicht jeder gegen jeden spielt … dürfte reichlich Arbeit bedeuten …
Denke Schach ist zu komplex. Wie wäre es mit einer KI für TicTacToe, oder ist das zu langweilig? Da kann man denk ich innerhalb einiger Stunden was recht ordentliches zaubern, wogegen man nurnoch schwer oder garnicht gewinnen kann.
Kommt halt immer drauf an, was deine Schüler können. 4 Gewinnt ist von Prinzip der KI ja auch recht ähnlich. Ne andere Idee wäre Schiffe versenken (wobei das schon vom Spiel her wieder realativ komplex wird).
Also ich weiß aus erfahrung das Tic Tac Toe eine sehr schöne möglichkeit ist sich mit Algorithmen zu beschäftigen, vor allem wenn man noch etwas begrenzte java kenntnisse besitzt. Außerdem kann man recht gut die Vorteile von Objektorientierter programmierung zeigen. Vor allem macht es den meißten viel spass den Algorithmus auf die Probe zu stellen. Also ich persöhnlich kann es nur empfehlen
Schach hat zuviele regeln und auch sonder zug möglichkeiten deswegen ist es zu komplex aber Stadt Schach könnte Dame Eine Gute Alternative sein
zb Den Algorytmus für das Schaltjahr zum berechnen ist noch sehr einfach .
Nein, zu langweilig keinesfalls!
Aber das ist auch eine gute Idee!
LG Willibergi