![]() |
Re: Ideen zur Schach KI
Zitat:
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 ;). |
Re: Ideen zur Schach KI
@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*) |
Re: Ideen zur Schach KI
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 ;) |
Re: Ideen zur Schach KI
@Dizzi: Das kann man aber dann mit meinem Vorschlag kombinieren.
Eine andere als eine Logische KI machen ist sau, bis extrem schwer. |
Re: Ideen zur Schach KI
Hallo,
schau mal ![]() Mehr Infos wirst Du in Bezug auf Delphi wohl nicht finden... Viel Spaß beim Source studieren :mrgreen: |
Re: Ideen zur Schach KI
Zitat:
Zitat:
![]() |
Re: Ideen zur Schach KI
Zitat:
Delphi-Quellcode:
Die meisten Methoden außer TBoard.TryNewMove funktionieren.
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; Du siehst hab schon vieles vorbereitet. Ist auch 'n Kopie von meinem Mehrspieler-Schach ![]() |
Re: Ideen zur Schach KI
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. |
Re: Ideen zur Schach KI
Liste der Anhänge anzeigen (Anzahl: 1)
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!) |
Re: Ideen zur Schach KI
Zitat:
MfG Binärbaum //Edit: Rechtschreibfehler.Destroy; :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 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