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
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

AW: KI Projekt

  Alt 27. Okt 2011, 12:26
Zu TicTacToe möchte ich anmerken dass im Grunde der Erste Zug des ZWEITEN Spielers entscheidet, ob der erste überhaupt gewinnen kann.

Baut Spieler2 seinen ersten stein in eine der ecken hat der Erste spieler keine Chance mehr.
Baut der Zweite Spieler seinen stein nicht in eine der ecken, hat der erste Spieler gewonnen.
Es ist dann 100% möglich eine Zwickmühle zu bauen, die der zweite spieler nicht mehr verhindern kann.

EDIT: ich geh mal davon aus das Spieler1 seinen stein in der mitte plaziert hat

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
mb1996

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

AW: KI Projekt

  Alt 27. Okt 2011, 12:34
Ich lass das Projekt mal stehen. Habe keine Lust, wenn allein schon solche Äußerungen kommen:

Zitat:
[...] Wenn er so weit ich, wie ich beschrieben hab, hat er sicher erst mal 1 Woche bis 1 Jahr zu tun (je nach Talent/Vorwissen).
Dann kann man es immer noch weiter ausbauen.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: KI Projekt

  Alt 27. Okt 2011, 13: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
 
#4

AW: KI Projekt

  Alt 27. Okt 2011, 13: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
 
#5

AW: KI Projekt

  Alt 27. Okt 2011, 13: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
 
#6

AW: KI Projekt

  Alt 27. Okt 2011, 13: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
 
#7

AW: KI Projekt

  Alt 27. Okt 2011, 13: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
Namenloser

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

AW: KI Projekt

  Alt 27. Okt 2011, 14: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
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#9

AW: KI Projekt

  Alt 27. Okt 2011, 14: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:27 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-2025 by Thomas Breitkreuz