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
mb1996

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

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
 
#2

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
 
#3

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
 
#4

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
 
#5

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
 
#6

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
mb1996

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

AW: KI Projekt

  Alt 27. Okt 2011, 15:48
Ich versuche gerade eine Möglichkeit zu finden, eine Pathmap zu erstellen. Und komme da leider nicht weiter. Der Computer muss ja verstehenm, was richtig und was falsch ist und danach Punkte geben. Und das Programm handelt so, dass es möglichst viele Punkte bekommt.

Ich stelle mir das erstellen so vor:

Wenn zum Beipiel:

Spieler: X
KI: O

XX-
--O
---

Wenn der Spieler zwei in einer dreier Reihe hat und nur noch einer fehlt dann soll dieses Feld von der KI blokiert werden.
Pathmap:
//wenn ein Feld besetzt ist, dann ist der Wert -2, da darf die KI nicht rauf

-2|-2| 1
0| 0|-2
0| 0| 0

//Die KI will mehr Punkte und setzt bei 1 den O

X|X|O
-|-|O
-|-|-

//Der Spieler passt gerade nicht auf und macht einen Fehler
X|X|O
X|-|O
-|-|-

Das Programm generiert eine Pathmap

-2|-2|-2|
-2| 0|-2|
0| 0|+1|

//Die KI möchte mehr Punkte und setzt bei +1 einen Kreis.

So jetzt bin ich gerade dabei, eine Prozedure zu schreiben, die mit hilfe von IF eine Pathmap generiert.
Soll ich das einfach mal so ähnlich machen? Also wenn zum Beispiel X|X|- dann soll beim Minus +1 stehen?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: KI Projekt

  Alt 27. Okt 2011, 15:58
Das letzte Beispiel ist aber falsch, da das Verhindern dea gegnerischen Dreiers auch die Prio 1 hat. Siegen müsste also eine höhere Prio haben, vllt. so:

Siegen: 4
Dreier verhindern: 3
Zwickmühle aufbauen: 2
Zweier aufbauen: 1
Irgendwas: 0
Besetzt: -1
Ralph
  Mit Zitat antworten Zitat
mb1996

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

AW: KI Projekt

  Alt 27. Okt 2011, 16:11
Ich fange erstmal an, dass sich das Programm (nur) verteidigt und es zum unentscheiden bringt
  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:31 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