i

Ein guter Computergegner?!

Implementierung einer Künstlichen Intelligenz

Unser Computergegner ist im aktuellen Zustand noch ziemlich unqualifiziert, um gegen ihn ein wirklich spannendes Spiel spielen zu können. Er schmeißt die Steine einfach zufällig in das Raster, ohne wirklich 'darüber nachzudenken'. Kann ein Computer überhaupt nachdenken? Eigentlich kann er nur das tun, was wir ihm vorher gesagt haben. Wir können den Computer also nicht dazu bringen, so intuitiv und intelligent zu spielen wie wir. Was wir aber tun können, ist, ihm Handlungsstrategien zu vermitteln, die er einsetzt, wenn bestimmte Situationen im Spiel auftreten.

Aufgabe 1

Spiele das Spiel erneut mit einem Klassenkameraden und sage laut, warum du den Spielzug machst.

Aufgabe 2

Erstelle eine ein Diagramm, bei dem du dir vermerkst, welche Situation eintritt, damit du zu einem bestimmten Spielzug gezwungen wirst.

Die 'künstliche Intelligenz' (KI), ein Computer mit Intelligenz, muss also bevor sie einen Stein in ein Feld wirft, überlegen, ob der Zug 'günstig' ist. Wir wollen als nächstes umgekehrt feststellen, welche Situationen den Computergegner dazu bringen, einen Stein in ein bestimmtes Feld zu werfen:

Schmeiße einen Stein in eine bestimmte Spalte, wenn...

  • ... mit dem Stein eine möglichst große Menge von größeren Blöcken erzeugt werden
  • ... damit ein Vierer-Block gebildet wird
  • ... damit eine große Anzahl von möglichst größeren Blöcken des Gegners verhindert werden.
  • ... damit ein Vierer-Block des Gegners verhindert wird


Aufgabe 3

Ordne die Situationen nach Priorität, also nach der Frage, welche Situation zuerst beachtet werden sollte, um möglichst gute Chancen zum Sieg zu haben.


Die Idee ist nun folgende: Bevor der Computer einen Stein in eine der Spalten wirft, weißt er jeder Spalte eine Priorität zu. Die Priorität bestimmt dabei die Situation, die eintritt, wenn ein Stein in diese Spalte geworfen wird. Wenn jede Spalte eine Priorität hat, entscheidet sich der Computer für die Spalte mit der höchsten Priorität und hat somit (gemessen an den Strategien, die wir entwickelt haben) die beste Entscheidung getroffen. Wir wollen hier nur noch grob eine Idee liefern, wo und wie dies implementiert werden kann; Wenn Du möchtest, kannst Du es dann in das vorhandene Programm integrieren. Wir raten Dir, eine neue Klasse zu erstellen, die die Methoden zum Finden der richtigen Spalte implementiert und genau dann von 'playDraw' aufgerufen wird, sobald der Computergegner einen Zug machen möchte.

Suche

v
7.2.5.4.1
dev.inf-schule.de/oop/python/viergewinnt/vertiefung/ki
dev.inf-schule.de/7.2.5.4.1
dev.inf-schule.de/@/page/20TS4afnW1bkdhlE

Rückmeldung geben