Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Vier Gewinnt (Delphi Clon) mit KI (https://www.delphipraxis.net/36336-vier-gewinnt-delphi-clon-mit-ki.html)

core 18. Dez 2004 15:44


Vier Gewinnt (Delphi Clon) mit KI
 
So, nach Luckie's Vier Gewinnt kommt jetzt meins :wink:

Also Vier Gewinnt mit einer kleinen ki! :lol:

Da es ein Projekt für die Schule ist, werde ich den Quellcode erst später veröffentlichen!

Testet es und schreibt, was ihr davon haltet!

http://mitglied.lycos.de/coilgun/core/vg.jpg

Download Ziel speichern unter !!!!!

Luckie 18. Dez 2004 15:50

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Es nervt, wenn man in einen Kreis klickt und dann das Fenster dahinter in den Vordergrund holt. Hat das irgendeinen besonderen Grund? Warum kann ich nicht auf dem ganzen Formular klicken, um einen Stein zu setzten, wie bei mir.

Mich würde mal die KI interessieren.

core 18. Dez 2004 15:57

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Zitat:

Zitat von Luckie
Es nervt, wenn man in einen Kreis klickt und dann das Fenster dahinter in den Vordergrund holt. Hat das irgendeinen besonderen Grund? Warum kann ich nicht auf dem ganzen Formular klicken, um einen Stein zu setzten, wie bei mir.

jo ich wollte halt "richtige" Löcher machen :)
werde das noch ändern!

Das mit der KI! Wie gesagt ich warte noch bis ich mein Projekt vorgedragen habe, dann stelle ich den Quellcode online!
Aber hier die allgemeine Funktionsweise (Kommentar aus meinem Quellcode):


Delphi-Quellcode:
{
  ki-Part:
  -------
  Aufbau der ki:
  Die ki wird über die Procedur ki() aufgerufen.
  Zuerst wird das Spielfeld auf Gewinnmöglichkeiten des Spielers
  geprüft! Die ki legt im Hintergrund in jedes mögliche Feld einen
  Stein des Spielers und überprüft, ob dadurch ein Sieg entsteht.
  Wenn ja, nimmt die ki den Stein zurück und wirft jetzt einen richtigen
  an diese Position!
  Wenn nein, nimmt die ki den Stein zurück und führt die Überprüfung fort!
  Sollte für den Spieler kein Gewinn möglich sein wird das alles
  wiederholt, nur dass die ki jetzt selbst zu gewinnen versucht!
  Sollte auch für die ki keine Gewinnmöglichkeit bestehen, wird der
  Stein an eine zufällige Stelle gesetzt.
  }

dizzy 18. Dez 2004 15:58

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Zwei Dinge sind mir aufgefallen:

1) Der innere Bereich der leeren Kreise ist direkt nach Start des Programmes durchsichtig (Der Desktop ist dadurch sichtbar). Nach einem Redraw (Verschieben, klicken, mini-/maximieren etc.) ist aber alles okay. Solle also durch einen zusätzlichen Repaint lösbar sein.

2) Der PC-Gegner setzt nachdem ich schon gewonnen habe noch einen Stein. Das ist mir nicht recht :D. Zudem wird die Gewinnmeldung 2 mal ausgegeben.

Ansonsten gefällt mir das ganze sehr gut! Luckies Problem kann ich im Übrigen nicht nachvollziehen - ich kann auf eine beliebige Spalte klicken, egal wo, und es wird ein Stück an die richtige Stelle gesetzt.
\\edit: AH! Das hängt mit der Transparenz vor einem Redraw zusammen!

Der PC-Gegner lässt sich allerdings imho zu leicht besiegen ;)

Gruss,
Fabian

dizzy 18. Dez 2004 16:02

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Zitat:

Zitat von core

Delphi-Quellcode:
{
  ki-Part:
  -------
  Aufbau der ki:
  Die ki wird über die Procedur ki() aufgerufen.
  Zuerst wird das Spielfeld auf Gewinnmöglichkeiten des Spielers
  geprüft! Die ki legt im Hintergrund in jedes mögliche Feld einen
  Stein des Spielers und überprüft, ob dadurch ein Sieg entsteht.
  Wenn ja, nimmt die ki den Stein zurück und wirft jetzt einen richtigen
  an diese Position!
  Wenn nein, nimmt die ki den Stein zurück und führt die Überprüfung fort!
  Sollte für den Spieler kein Gewinn möglich sein wird das alles
  wiederholt, nur dass die ki jetzt selbst zu gewinnen versucht!
  Sollte auch für die ki keine Gewinnmöglichkeit bestehen, wird der
  Stein an eine zufällige Stelle gesetzt.
  }

Hmmmm. Zufällig ist imho nicht so günstig. 4Gewinnt wäre sicherlich ein klassische Kandidat für das Mini-Max-Prinzip! Damit sollte sich eine sehr schwer besiegbare KI bauen lassen. Jetzt hast du mich neugierig gemacht... *auchmalversuchenwill* :D

core 18. Dez 2004 16:02

Re: Vier Gewinnt (Delphi Clon) mit KI
 
So, hab das mit den Löchern jetzt geändert! :)

Neue Version unter dem gleichen Link oben.

nailor 18. Dez 2004 16:02

Re: Vier Gewinnt (Delphi Clon) mit KI
 
der tripod-link zickt bei mir rum. nochnichtmal mit "ziel speichern unter" ist da was zu holen.

Luckie 18. Dez 2004 16:08

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Bei mir scheint der Desktop immer durch. Und wenn ich dan in ein Loch klicke wird das darunterliegende Fenster in den Vordergrund geholt.

OK, ixt behoben, jetzt flackert es nur sehr unschön jedes mal beim Setzen der Steine.

bigg 18. Dez 2004 16:13

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Ich hab den Computer gleich beim ersten mal besiegt :-D
Aber ansonsten ist das Spiel ganz gut gelungen. :thumb:

stoxx 18. Dez 2004 16:30

Re: Vier Gewinnt (Delphi Clon) mit KI
 
also ich hab den Computer auch gleich beim ersten Mal besiegt :-))

Kenn das von Luckie jetzt nicht.
Aber das von Max Kleiner ist in der höchsten Spielstufe echt hammerhart.

http://max.kleiner.com/secos.htm

http://max.kleiner.com/download/4gewinnt.zip

Das Spiel gewinnt man, wenn überhaupt, nur wenn das ganze Spielfeld schon fast voll ist in den letzten Zügen ...

jfheins 18. Dez 2004 17:24

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Sieht ganz gut aus, aber was mir noch aufgefallen ist:
:arrow: Hat es einen Grund, dass ich das Meldungsfenster "Du Gewinner" (oder so ...) 2 mal bekomme ???
:arrow: Die KI sollte berechnen, wenn Sie einen Zug machen will, ob ich dadurch in meinem Zug gewinnwn kann.

core 19. Dez 2004 13:06

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Danke fürs testen! Werde jetzt mal den MiniMax-Algo einbauen!! :wink:

dizzy 19. Dez 2004 13:50

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Hab ich gestern auch mal versucht, und als der Aufbau des Spielbaumes dermaßen lange gedauert hat, hab ich mal gegoogelt, wie viele Möglichkeiten es gibt das Board zu bestücken... es sind 7^(7*6). Das macht ungefähr:

311.973.482.284.542.371.301.330.321.821.980.000 Knoten für den Spielbaum :shock: (ist nicht ganz genau - der Windows-Taschenrechner kann ja auch höchstens mit Double rechnen ;))

Also kann man den gesamten Baum wohl nicht aufstellen. Dann muss man daher gehen, und immer dynamisch einen kleinen Baum von der aktuellen Position aus basteln, und eine Bewerungsfunktion einbauen, die nicht nur für gewonnen/verloren klappt, sondern auch etwas wie "so gut wie gewonnen/verloren" erkennt. Das ist sicherlich etwas mehr Aufwand. Aber eine interessante Sache!

Gruss,
Fabian

Nicodius 19. Dez 2004 14:01

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Liste der Anhänge anzeigen (Anzahl: 1)
anhang siehe leichte ki probleme ;)

ich sag dir einfach nacher immer wo ich reingeworfen habe wo er


also ich bin ja bekanntlich 1 er zwei .. wieso er da reinwirft weiß ich nicht ... wärs echt würd ich lachend "danke" sagen und "noch eins" fragen ;)

The-Fox 25. Dez 2004 19:48

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Download = 404 bzw. der Referer. Lads doch hier im Forum hoch.

Luckie 1. Feb 2005 14:59

Re: Vier Gewinnt (Delphi Clon) mit KI
 
Mich würden mal die Sourcen der angekündigten KI intersssieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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