AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

KI Projekt

Ein Thema von mb1996 · begonnen am 27. Okt 2011 · letzter Beitrag vom 27. Okt 2011
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: KI Projekt

  Alt 27. Okt 2011, 14:25
Auch wenn ja jetzt hinfällig: Den Spielbaum (nicht Stammbaum) "bekommst" du nicht in dein Programm, den muss es natürlich selbst errechnen/aufbauen/auswerten. Wobei ich mich durchaus der Einschätzung anschließen muss, dass das gesamte Unterfangen mit deinem Kenntnisstand (der sich durch die Art wie und was du fragst, und wie du das angehst durchaus einschätzen lässt) eventuell noch einen Meter zu hoch hängt. Wenn zudem diese nüchterne Feststellung, die ja nichtmals negativ wertend ist, deinen Elan komplett vernichtet, muss man wohl eher in Frage stellen, ob du überhaupt zum Programmierer (Problemlöser!) "geschnitzt" bist. Man wächst immer an seinen Problemen/Aufgaben, wozu es halt nötig ist, dass die an denen man wirklich wächst zunächst größer sind als man selbst. Wenn du das nicht ab kannst, wird's nen harter Weg in diesem Bereich für dich
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#2

AW: KI Projekt

  Alt 27. Okt 2011, 14:47
Wenn ich diesen Spielbaum errechnen möchte, dann muss ich ja eine wahrscheinlichkeit errechnen, was der Spieler als nächstes vor hat. Die Frage ist nur, wie ich das heraus finde. Da muss ich ja prüfen, ob 2 in einer Reihe sind und die Reihe dann blokieren. Das wäre dann meiner Meinung nach die Abwehr.

XX-
O--
---

dann XXO
O--
---
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#3

AW: KI Projekt

  Alt 27. Okt 2011, 14:49
Wenn der Mensch anfängt, dann musste sich der Computer im Normalen verteidigen und Reihen blockieren.

Dann müsste ich auch Angreifen.
Zum Beispiel:

XXO
XO-
---

zu

XXO
XO- Computer gewinnt
O--
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#4

AW: KI Projekt

  Alt 27. Okt 2011, 14:50
Dann fange ich mal an zu programmieren. Aber ich würde das mit IF machen.

Wenn
XX-
...
...

Dann
XXO
...
...

Ist das dann trotzdem eine KI?
Oder muss ich das mit Punkten machen?
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: KI Projekt

  Alt 27. Okt 2011, 14:56
Ist das dann trotzdem eine KI?
Nö, nicht im geringsten. Denn so sind alle Spielzüge von Dir vorprogrammiert. Hat mit KI nichts zu tun.
Jens
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#6

AW: KI Projekt

  Alt 27. Okt 2011, 14:58
Und wie mache ich das, dass das Programm entscheidet?
Das ist nämlich die Frage. Ein Punktesystem wurde schon genannt. Doch, wie soll ich das auf das Programm anwenden? Auf TTT
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: KI Projekt

  Alt 27. Okt 2011, 15:03
KI ist auch ein bisschen Definitionssache. Imo ist alles „künstliche Intelligenz“, was sich (scheinbar) intelligent verhält. Das heißt, im Grunde kannst du es machen wie du willst, aber du wirst feststellen, dass es sehr unübersichtlich wird, wenn du alles hardcodest. Deshalb macht das auch niemand, wirklich niemand. Bei Tic-Tac-Toe mag es gerade noch gehen, aber schon bei 4-Gewinnt wird es unmöglich sein, jeden Spezialfall vorherzusehen und zu behandeln.

Weil Pathfinding vorhin schon genannt wurde: Im Grunde ist auch die Spiel-KI selbst nichts anderes. Es kommen letztlich die gleichen Algorithmen zum Einsatz wie in Navigationssystemen und Co., nur dass die Knoten nicht irgendwelche Straßen-Kreuzungen sind, sondern die möglichen Spielzüge, und nicht die Distanz zum Zielort ausschlaggebend ist, sondern die „Bewertung“ des Spielstandes (die bei komplexen spielen immer eine Heuristik ist, da man Spiele wie Schach nicht bis zum Ende durchrechnen kann).

Wenn du wirklich was in der Richtung machen willst, würde ich mir daher erst mal Pathfinding anschauen, und dann im nächsten Schritt überlegen, wie ich das auf eine Spiel-KI übertragen kann. Du wirst im Netz viele Quellcodes finden, die mittels Backtracking den Weg aus einem Labyrinth finden – dass wäre ein guter Einstieg. Auch den Pathfinding-Algorithmus A* (Sprich: „A-Star“) würde ich mir mal anschauen, weil er relativ leicht zu verstehen ist und man ihn – wenn man ihn verstanden hat – leicht auf seine eigenen Bedürfnisse anpassen kann. Der Wikipedia-Artikel dazu ist recht anschaulich.
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#8

AW: KI Projekt

  Alt 27. Okt 2011, 15:07
Danke, ich werde mir das angucken
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#9

AW: KI Projekt

  Alt 27. Okt 2011, 15:19
Ich hatte mir sowas vor einer Zeit mal auf DelphiGL angeguckt. Und so eine Pathmap sollte man dann auch auf Spiele anwenden hier. Dann müsste man nach jeden Zug eine Pathmap erzeugen. Und wenn ich eine ,,gute KI" haben möchte, dann muss ich für die nächsten Züge eine Pathmap erzeugen, um den Spieler zu berechen.

Dann muss ich nur noch herausfinden, wie ich so eine Pathmap dynamisch erstellen.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#10

AW: KI Projekt

  Alt 27. Okt 2011, 15:05
Zum Aufbau des Baumes musst du nichts abschätzen, er ist gerade die Basis dafür. Der Baum enthält alle möglichen Spielstände, strukturiert nach Zügen, also in der Reihenfolge, in der sie auftauchen. Die Idee dahinter ist es, dass man dann auch sämtliche möglichen Ausgänge einer Runde hat, die sehr einfach zu bewerten sind: Gewonnen, veloren oder unentschieden. Somit kann man dann von den Blättern des Baumes (Spielendsituationen) aufwärts die "Qualität" der Spielzüge (die Kanten im Baum) durchziehen. Damit weiss die KI dann in jeder vorkommenden Spielsituation, welcher nächste Zug am wahrscheinlichsten zum eigenen Sieg führt.
Das Problem bei komplexeren Spielen als z.B. TTT ist, dass es oftmals nicht möglich oder praktikabel ist alle möglichen Spielsituationen im Voraus zu berechnen (bzw. zu puffern), so dass man in die Verlegenheit kommt Nicht-Endsituationen bewerten können zu müssen, was je nach Spiel ziemlich knobelig ist, und ggf. eine ganze Latte weiterer Algorithmen braucht, die wieder vom Spiel abhängen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz