Autor Beitrag
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 07.07.06 19:44 
Version 1.0.0.28 !

-> Weiter optimiert mit 14 Koeffizienten
-> Die Vorgabe-Koeffizienten wurden ermittlelt per "Lernen per Evolution" (Code von alzaimar):
1000x / Level 0
200x / Level 1
41000x / Level 0
100000x / Level 0
2x / Level 5
127x / Level 3

aber ...
... es fehlt sehr dringend eine Stellungs-Muster-Erkennung!

//Edit: Test auf Level 4: Programm erkennt nicht, dass der Spieler in zwei Zügen gewinnen wird und schlägt nicht den Gewinn-Stein, sondern macht einen anderen Zug. Der Spieler kann nun auf 1 Feld vor der Grundlinie vorrücken, ist somit unschlagbar, das Programm macht einen Zug, der Spieler gewinnt mit dem nächsten Zug.
Siehe oben: es fehlt sehr dringend eine Stellungs-Muster-Erkennung!
Einloggen, um Attachments anzusehen!
_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 12.07.06 18:13 
Hallo!

Hat jemand vielliecht einen Tipp, wie ich die Spielstellung sozusagen umkehren kann? Ich meine, was zB. zuerst auf b5 stand soll dann auf g5 stehen, und was auf c2 stand auf f2 usw. Ich komme nicht hin. Zunächst lese ich das Spielfeld in ein Board aus, und aus diesem soll dann die Stellung umgekehrt aufgebaut werden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  aBoard: TBoard;
  X1, Y1, X2, Y2: Byte;
  aPlayer: TPlayer;
begin
 for Y1 := 0 to 7 do
  for X1 := 0 to 7 do
  begin
   aPlayer := Board[Y1, X1];
   SetBoard(aBoard, aPlayer, X1, Y1);
  end;

//aBoard enthält jetzt die aktuelle Spielstellung. Wie geht's nun
//hier weiter, wenn ich das Spiel "umdrehen" will?
//aBoard ist das "temporäre" Brett, aus dem in Board umgekehrt geschrieben werden soll


//Edit: ist erledigt.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 02.08.06 17:54 
Hallo Delphi-Leute!

Version 1.0.0.30 - lang erwartet, heiss ersehnt :mrgreen: :wink: ist da! Hier ein kleiner Auszug der Verbesserungen (hoffentlich sind's auch wirklich welche!):

-> 20 Koeffizienten
-> CPU-Geschwindigkeit wird ermittelt und beim Bewerten der Spielstellung verwendet anstatt wie bisher fix 1500 (mein PC ist langsamer!)
-> Brett umdrehen ist möglich
-> Bei nur einer Figur oder nur einem möglichen Zug rechnet das Programm nicht weiter, sondern macht diesen Zug

Wichtig: Man muss den Abschnitt [Coeffs] in Bauernspiel.ini entweder auf 20 Koeffizienten erweitern oder löschen!

Grosse Bitte an euch: Kann mir bitte jemand helfen, was Mustererkennung bei bestimmten Stellungen angeht? alzaimar hat das mal angesprochen, aber ich habe leider keinen Ansatz dafür! :gruebel: DAS fehlt noch, dann wäre es, denke ich, praktisch fertig. Schon mal Danke im Voraus!

//Edit: Hier noch die Boards - ich habe einfach die einzelnen Bitmaps in die *.brd-Zieldatei kopiert und dabei jeweils angehängt.
Einloggen, um Attachments anzusehen!
_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 04.08.06 18:45 
Hallo!

Die Mustererkennung (=Auswertung einer bestimmten Stellung) kriege ich ja sicherlich hin, aber was soll das Programm mit dieser "Erkenntnis" dann tun, wenn das Ganze eine Mustererkennung sein soll?

Hat denn wirklich niemand eine Idee? :(

//Edit: Beispiel - das Programm führt derzeit den Zug e6-e5 aus - ein fataler Fehler, denn der Spieler gewinnt dann! Wie also könnte eine Mustererkennung aussehen?
Einloggen, um Attachments anzusehen!
_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!