Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vier gewinnt AI (https://www.delphipraxis.net/139133-vier-gewinnt-ai.html)

PhilmacFLy 24. Aug 2009 11:12


Vier gewinnt AI
 
Hoi DP'ler

Mal wieder eine der ne vier gewinnt AI braucht. Momentan hab ich eine halb funktionierde AI, die zwar etwas dumm teilweise ist, da sie eigene 3 Steine nicht erkennt, aber wenigstens gegnerische Aktionen zu unterbinden versucht, in dem sie den Gegner auf 2 oder 3 Steine in einer Reihe prüft. Aber das ist mir zu wenig. Leider hab ich aber überhaupt keine Idee wie ich eine vorausschauende schlaue AI programmiern soll.

jfheins 24. Aug 2009 11:20

Re: Vier gewinnt AI
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich kann ja mal meine posten... hat 2 Schwierigkeitsstufen und ist etwas dilettantisch programmiert (ist schon etwas her ...) aber funktioniert :mrgreen:

In Aktion kannste das Teil sehen, wenn du mein SmallFTP runterlädst und dann im About-Dialog (Fragezeichen-Button) auf das J in der Ecke doppelklickst ;)

PhilmacFLy 24. Aug 2009 11:21

Re: Vier gewinnt AI
 
Ja hatte ich schon weil ich die ganze Zeit schon am suchen war, aber ich habs iwie nicht verstanden. Naja ich schaus mir nochmal an.

Popov 30. Okt 2014 10:52

AW: Vier gewinnt AI
 
Zitat:

Zitat von PhilmacFLy (Beitrag 944781)
Leider hab ich aber überhaupt keine Idee wie ich eine vorausschauende schlaue AI programmiern soll.

Im Grunde wie bei jedem Spiel.

Zuerst musst du es hinkriegen, dass dein Spiel die Farben trennen kann, d. h. Schwarz spielen wenn Schwarz der Gegner ist, oder Weiß spielen, wenn Weiß der Gegner ist. Auch solltest du das flexibel gestalten, d. h. nicht von vornherein Schwarz als Gegner programmieren, sondern das Ganze per Option entscheiden. Zuletzt solltest du also einen Code haben der Schwarz oder Weiß spielen kann.

Natürlich gehen wir davon aus, dass dein Code es hin bekommt zu prüfen ob vier Steine in Reihe sind. Das ist die Grundvoraussetzung.

Nun kommt die "Intelligenz". Wobei man das Ganze nicht als Zauberei ansehen sollte, sondern nur Fleißarbeit:

Zuerst prüfst du alle möglichen Züge von Schwarz. Also nicht die erste Möglichkeit nutzen die es gibt, sondern alle Möglichkeiten suchen. Für Schwarz. Nachdem du eine Liste aller möglichen schwarzen Züge ermittelt hast, machst du intern den Zug und stellst den Gegner nun auf Weiß um. Jetzt prüfst du alle möglichen Züge für Weiß. Dann stellst du wieder auf Schwarz um und prüfst die Züge, usw.

Zuletzt kommen dabei paar Hundert oder Tausend mögliche Züge zustande, abhängig davon wie viele Züge du im voraus geplant hast. Du hast eben alle möglichen Variationen durchprobiert, und das alles einige Züge im voraus.

Nun suchst du aus den allen Zügen den Besten.

Die "Intelligenz" ist also im Grunde keine, du nutzt nur einfach dei Möglichkeiten des Computers aus und prüfst alle Variationen aus. Welche ist für sich die Beste. Damit das aber klappt, darfst du nicht nur deine Züge prüfen, sondern auch die Variationen des Gegners. Im Grunde ist das alles nur Rechnen.

DeddyH 30. Okt 2014 10:54

AW: Vier gewinnt AI
 
Ich möchte bezweifeln, dass das den TE nach über 5 Jahren noch interessiert :roll:

Popov 30. Okt 2014 10:55

AW: Vier gewinnt AI
 
Ok, hast Recht, hab nicht geguckt wann der Thread gestartet wurde.

Neutral General 30. Okt 2014 10:56

AW: Vier gewinnt AI
 
Popov: Du hast auf einen Post von 2009 geantwortet. Der Thread ist nur hier wegen swaggydelphiboy der seine Hausaufgaben runterladen will :roll:

Der schöne Günther 30. Okt 2014 11:04

AW: Vier gewinnt AI
 
Mit XE7 Ultimate. An Swag kaum zu übertreffen 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.

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