AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ideen zur Schach KI

Ein Thema von Cicaro · begonnen am 12. Apr 2005 · letzter Beitrag vom 25. Mai 2005
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#41

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 17:13
Zitat von Airblader:
Das Problem bei einer Stellungsbewertung ist doch, dass eine Stellung für die Berechnung *schwäbisch* sauschlecht */schwäbisch* aussehen kann und trotzdem im nächsten Zug einen deutlichen Vorteil arrangiert

air
Und ganz genau deshalb nimmt man einen Baum. Weil dort in alle möglichen Zukünfte gesehen werden kann, und eine Wahrscheinlichkeit angenähert, mit der die KI gewinnt. Und deshalb entscheidet auch die Tiefe des Baumes maßgeblich mit über die Stärke der KI.
Durch das "Hochziehen" der Blattbewertungen erkennt die KI nämlich dass ein zunächst ungünstiger Zug in der Folge aber vorteilhaft sein kann (so die Heuristik akkurat ist).

@Speedmaster: Weiss ich doch . Ich hatte es nur nochmal explizit hingeschrieben falls sich auch mal jemand auf "englische Suche" begibt .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#42

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 17:43
@dizzy

Da hilft dir doch auch ein Baum nichts.
Du kannst damit verschiedene mögl. Züge aufzählen, aber was in 2-3 Zügen ist, weisst du nicht
(Außer du lässt 2 KI's spielen *g*)
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#43

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 17:57
doch, du guckst für jede position im baum, wies aussieht.

ausserdem sollte imho die ki schon erkennen, wenn im nächsten zug "was geht" sprich was geschlagen werden kann oder so.

aber ich seh schon, ich bau meine eröffnungsklasse, aber halt die (erstmal) unter verschluss, falls das mit den teams noch was gibt
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#44

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 18:27
@Dizzi: Das kann man aber dann mit meinem Vorschlag kombinieren.

Eine andere als eine Logische KI machen ist sau, bis extrem schwer.
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#45

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 19:00
Hallo,

schau mal hier.

Mehr Infos wirst Du in Bezug auf Delphi wohl nicht finden...

Viel Spaß beim Source studieren
Catbytes
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#46

Re: Ideen zur Schach KI

  Alt 13. Apr 2005, 20:01
Zitat von Speedmaster:
@Dizzi: Das kann man aber dann mit meinem Vorschlag kombinieren.
Ich vermute dass dein Vorschlag lediglich auf die Heuristik abzielt. Dann ist das nicht nur kombinierbar, sondern zwangsläufig dazugehörig. Entschuldige bitte dass ich dich zunächst nicht so ganz richtig verstanden hab

Zitat von Speedmaster:
Eine andere als eine Logische KI machen ist sau, bis extrem schwer.
Logisch ist klar, aber das statisch ist mein Kritikpunkt .


Interessant
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#47

Re: Ideen zur Schach KI

  Alt 14. Apr 2005, 07:49
Zitat von glkgereon:
bevor du mit ner ki anfängst, schreib erstmal eine "grafik"-engine, die folgende anforderungen erfüllt:

- darstellung der akuellen stellung
- entgegennahme von user-inputs (maus, tastatur)
- entgegennahme von programm-inputs (functions/ procedures)
- einfach ansteuerung (zb. TrackFigure(x1,y1,x2,y2); )

dann erweiterst du diese engine mit einem reinen bewertungssystem, das einfach sagt, wie es seiner meinung nach grade steht.

dieses testest du dann ausführlich

wenn es gut ist, dann baust du ein das er züge selber ausprobiert.

und dann, ist es nur noch ein kleiner schritt bis zur "richtigen" ki
Guck mal hier:

Delphi-Quellcode:
type
 TMove = record
          A,B,rA,rB,V:TPoint;
         end;

 TFigure = record
            Pos:TPoint;
            ID:Integer;
           end;

 TFields = array[1..8,1..8] of TFigure;

 TBoard = class
 public
  Children:array of TBoard;
  Parent:TBoard;

  Fields:TFields;
  Move:TMove;
  Turn:Integer;
  wGetPawn,bGetPawn,wRochade,bRochade:Boolean;

  constructor Create(AParent:TBoard);
  destructor Destroy;override;

  procedure NewBoard;
  procedure LineUpFigures;
  procedure CopyFrom(B:TBoard);

  function KingMoveAllowed:Boolean;
  function RochadeAllowed:Boolean;
  function RookMoveAllowed:Boolean;
  function KnightMoveAllowed:Boolean;
  function BishopMoveAllowed:Boolean;
  function PawnMoveAllowed:Boolean;
  function PawnKillAllowed:Boolean;

  function Checked(Side,x,y:Integer):Boolean;
  function KingChecked(Side:Integer):Boolean;
  function GettingChecked:Boolean;

  function MovePossible:Boolean;
  function MoveAllowed:Boolean;
  procedure DoMove;
  // Einstieg der KI
  procedure TryNewMove;
 end;

 TChessBoard = class(TComponent)
 private
  FImage:TImage;
  FFieldWidth,FFieldHeight:Integer;
  FWhiteFieldColor,FWhiteFrameColor,FBlackFieldColor,FBlackFrameColor:TColor;
 public
  BitmapCollection:TBitmapCollection;
  Board:TBoard;

  constructor Create(Owner:TComponent);override;
  destructor Destroy;override;

  procedure DoBestMove;

  procedure DrawField(x,y:Integer);
  procedure DrawMovedFigures;
  procedure DrawBoard;
 published
  property Image:TImage read FImage write FImage;
  property FieldWidth:Integer read FFieldWidth write FFieldWidth default 32;
  property FieldHeight:Integer read FFieldHeight write FFieldHeight default 32;
  property WhiteFieldColor:TColor read FWhiteFieldColor write FWhiteFieldColor default $EFEFEF;
  property WhiteFrameColor:TColor read FWhiteFrameColor write FWhiteFrameColor default $DFDFDF;
  property BlackFieldColor:TColor read FBlackFieldColor write FBlackFieldColor default $BFBFBF;
  property BlackFrameColor:TColor read FBlackFrameColor write FBlackFrameColor default $CFCFCF;
 end;
Die meisten Methoden außer TBoard.TryNewMove funktionieren.
Du siehst hab schon vieles vorbereitet. Ist auch 'n Kopie von meinem Mehrspieler-Schach

Hier ist es!
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#48

Re: Ideen zur Schach KI

  Alt 14. Apr 2005, 08:00
Sauba!!!

ich hab soweit meine DB für die Eröffnungen fertig.

was soll ich für ne DB nehmen? is Access die schlechteste wahl?
weil diesen Borland-DB-Designer finde ich gelinde gesagt gagga.

ich werd ne klasse machen, die den ganzen kram verwaltet, der brauch man nur zu sagen
"ey du, da wurde gerade e2e4 gespielt" und dann trägt die das ein und dann sagt man
"ey du, rück mal nächsten zug raus" dann kommt ein int zurück
entweder 0, dann steht zb e7e5 in nem var-parameter, oder was anderes dann hatsn problem gegeben.
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#49

Re: Ideen zur Schach KI

  Alt 15. Apr 2005, 10:04
Hey, Leute !

Danke für die vielen Ratschläge !

Hier könnt ihr euch mein Programm ansehen.
Die KI arbeitet REIN zufällig. (Vorsicht: Ende der Partie wird NICHT erkannt!)
Angehängte Dateien
Dateityp: zip chess_214.zip (204,3 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#50

Re: Ideen zur Schach KI

  Alt 15. Apr 2005, 13:00
Zitat von Cicaro:
Hey, Leute !

Danke für die vielen Ratschläge !

Hier könnt ihr euch mein Programm ansehen.
Die KI arbeitet REIN zufällig. (Vorsicht: Ende der Partie wird NICHT erkannt!)
Da gibt es aber noch viel zu tun. Dein Programm sollte wenigstens erkennen, wenn eine Partie zu Ende ist.

MfG
Binärbaum

//Edit: Rechtschreibfehler.Destroy;
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    


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 10:40 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