Delphi-PRAXiS
Seite 3 von 10     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ideen zur Schach KI (https://www.delphipraxis.net/44025-ideen-zur-schach-ki.html)

Speedmaster 12. Apr 2005 14:40

Re: Ideen zur Schach KI
 
Habe zwar nicht alles gelesen, aber ich würde das so ansetzen:

Du setzt jedem Zugtyp eine Priorität, dannach rechnest du für jede Figur im Spiel die Priorität ihrer Züge aus.

Als Beispiel:
Du hast einen Bauer der wenn er Vorzieht, z.b. folgende Prioritäten erhält:
- Feld Rechts wird verdeckt verhindet Angriff auf König(P25)
- Feld Links ist ein gegn. Pferd (P4)
- Figur kann nicht mehr geschlagen werden(P8)
- Figur ist 3 fach gedeckt(3 * P2)
- Figur deckt den Bauern danneben nicht mehr Schräg(- P16)

Das Rechnest du jetzt für jede Figur aus, wenn man jetzt ein Bischen weiterkommt kommt man schnell auf die Idee, wie man dies für eine Vorrausdenkende KI machen kann.

Die Punkteverteilung ist dabei sehr Hilfreich um die verschiedenen Schwierigkeitsgrade zu Realisieren.

dizzy 12. Apr 2005 14:50

Re: Ideen zur Schach KI
 
@Speedmaster: So würdest du dich in Spezialfällen verlieren. Das kann so in der Form imho nichts werden, bzw. würde man ewig daran programmieren. Dazu kommt dass der Schwierigkeitsgrad fix wäre. Bei der Baumvariante kann man die KI z.B. nicht GANZ auf Min oder Max spielen lassen, sondern z.B. mit Remis als Ziel. Oder gar gegen sich selbst, so dass man fast gezwungen wird zu gewinnen :mrgreen:. Das wäre dann nur einen Wert ändern.

freak4fun 12. Apr 2005 14:55

Re: Ideen zur Schach KI
 
Zitat:

Zitat von Speedmaster
- Figur kann nicht mehr geschlagen werden(P8)

Ist das die höchste Priorität? :gruebel: :mrgreen:

Find ich 8).

Ich verfolge diesen Thread mit erstaunen, weil ich das viel zu kompliziert finde. Aber macht mal. Vielleicht fällt mir ja auch noch was dazu ein. :cyclops:

MfG
freak

Speedmaster 12. Apr 2005 14:57

Re: Ideen zur Schach KI
 
Zitat:

Zitat von freak4fun
Zitat:

Zitat von Speedmaster
- Figur kann nicht mehr geschlagen werden(P8)

Ist das die höchste Priorität? :gruebel: :mrgreen:

Find ich 8).

Ich verfolge diesen Thread mit erstaunen, weil ich das viel zu kompliziert finde. Aber macht mal. Vielleicht fällt mir ja auch noch was dazu ein. :cyclops:

MfG
freak

Kommt drauf an welche Figur das ist.

@dizzi: Wozu gibts es die Maximale Zugvorraussicht? :D

dizzy 12. Apr 2005 15:02

Re: Ideen zur Schach KI
 
Zitat:

Zitat von Speedmaster
@dizzi: Wozu gibts es die Maximale Zugvorraussicht? :D

Naja, ich frage mich lediglich warum bei fast allen Brettspielimplementationen (die ich kenne) die KI mit einem Spielbaum, und nicht mit so einem unflexiblen if..then..else..if..then..else..etc. gelöst ist :mrgreen:. Haben sich da evtl. schon Leute Gedanken drüber gemacht, die man nicht von neuem anstellen muss? ;)

Speedmaster 12. Apr 2005 15:26

Re: Ideen zur Schach KI
 
Zitat:

Zitat von dizzy
Zitat:

Zitat von Speedmaster
@dizzi: Wozu gibts es die Maximale Zugvorraussicht? :D

Naja, ich frage mich lediglich warum bei fast allen Brettspielimplementationen (die ich kenne) die KI mit einem Spielbaum, und nicht mit so einem unflexiblen if..then..else..if..then..else..etc. gelöst ist :mrgreen:. Haben sich da evtl. schon Leute Gedanken drüber gemacht, die man nicht von neuem anstellen muss? ;)

Um if..then..else kommst du eigentlich garnicht rum!
Aber if then else kommt in meiner Idee auch fast garnicht vor!

dizzy 12. Apr 2005 15:54

Re: Ideen zur Schach KI
 
:roll: Ich denke hier nicht an die normale Verwendung von if..then..else, sondern das war als Synonym gedacht für das gezielte Behandeln einer Großzahl von Einzelfällen der Art:
Delphi-Quellcode:
if KönigImSchach then
  PackNeDaWech
else
if DameInGefahr then
  SiehZuDassuDiInSicherheitBekommst
else
if BauerKannDickenGegnerSchlagen then
  TuDasVerdammtNochmal
else
if ... ... ...
Auf soetwas in der Art würde dein Vorschlag hinauslaufen, und noch viel verschachtelter ;). (Glaub mir, ich hab schon Leute so TicTacToe programmieren sehen - es war grauenvoll! Und das dann für SCHACH!? *schüttel* :))

Speedmaster 12. Apr 2005 17:04

Re: Ideen zur Schach KI
 
Naja, du hast nicht diesselbe denkweise wie ich, ich redete von Mathematik, und nicht von Dutzenden if..then..else Verzweigungen.

Ruppi 12. Apr 2005 22:08

Re: Ideen zur Schach KI
 
Meine Weißheit hierzu:

die besten Schachprogramme sind von Programmieren geschrieben, die kaum oder gar kein schach spielen können. Als ich meine erste Schach KI programmiert habe hab ich auch den Fehler gemacht viel zu viele sonderbewertungen mit hineinzunehmen.

Das besondere einer KI ist ja, dass sie umso besser spielt, umso besser sie stellungen berwerten kann. also schnapp man sich binäre bäume und ein relativ simples bewertungssystem:
Figur mit wert x schlagen: X Punkte.
Wenn man das noch schön auf geschwindigkeit optimiert hat man ein schachprogramm dass (umso besser es optimiert ist) schon recht stark spielt.
Regel sollte man ihm beibringen...

Wenn du soweit bist kannst du dein berwertungssystem weiter ausbauen wenn du es brauchst, aber das habe ich dann nicht mehr gemacht, da es das ganze extrem kompliziert.

also schreib dir ne function der du ne stellung übergiebst un die dir dann nen wert liefert
(Z.b <0 positiv für schwarz >0 positiv für weiß)
machst nen shönen baum un rechnest mit den stellungen die die besten werte für die KI und die wenigsten schlechten werte für den Spieler besitzen.

Fertig. Aus. Läuft.
Hat mich igrnedwann mal geschlagen *hehe* jetzt nicht mehr

mfg Chris

Airblader 13. Apr 2005 05:14

Re: Ideen zur Schach KI
 
Zitat:

Zitat von dizzy
Naja, ich frage mich lediglich warum bei fast allen Brettspielimplementationen (die ich kenne) die KI mit einem Spielbaum, und nicht mit so einem unflexiblen if..then..else..if..then..else..etc. gelöst ist :mrgreen:. Haben sich da evtl. schon Leute Gedanken drüber gemacht

Ja ;) siehe Fritz...das spielt in 3 Spielen sogar Unentschieden gegen den Schachweltmeister (jeder gewinnt eine Partie, die letzte war Unentschieden).

Zitat:

Zitat von dizzy
, die man nicht von neuem anstellen muss? ;)

Doch, da die Leute das nicht rausrücken *gg* Aber ich kann mir vorstellen, dass die Leute sowohl Mathematiker als auch gute Schachspieler waren, tausende Szenarien nachgestellt haben und das ganze vielleicht doch nach einer Art Algorithmus machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr.
Seite 3 von 10     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz