AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Schach: Überprüfung, ob Zug erlaubt
Thema durchsuchen
Ansicht
Themen-Optionen

Schach: Überprüfung, ob Zug erlaubt

Ein Thema von fkerber · begonnen am 3. Jun 2005 · letzter Beitrag vom 2. Aug 2006
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: Schach: Überprüfung, ob Zug erlaubt

  Alt 1. Aug 2006, 07:29
Ich würde mal versuchen, einen Zuggenerator zu entwerfen. Er erzeugt für alle Steine einer Farbe alle legalen Züge. Dieser Zuggenerator ist neben der Stellungsbewertung der zentrale Bestandteil eines Schach (oder Brettspiel-) Programmes.

So schwer ist das ja nicht.

Delphi-Quellcode:
Type
  TChessPos = Record
    cpRow, cpCol : Byte;
    End;
  TChessMove = Record
    cmPiece : TChessPiece;
    cmFrom,
    cmTo : TChessPos;
  End;

  TChessMoves : Array Of TChessMove;

Procedure MakeAllMoves (aBoard : TChessBoard; aColor : TChessColor; Var aMoveList : TChessMoves);
Var
  r,c : Integer;

Begin
  For r :=0 to 7 do
    For c := 0 to 7 do
       If aBoard[r,c].Color = aColor then
         Case aBoard[r,c].Piece Of
            ...
         End;
End;
Für jeden Spielstein (Bauer, Turm etc.) müssen dann eben einfach alle möglichen Züge durchprobiert werden. Klar kommt da Einiges zusammen, das ist ja gerade der Grund, warum erst jetzt, mit superparallelen und superschnellen Rechnen, ein Computer besser spielen kann, als ein Mensch.

Schach ist nun mal nicht trivial.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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:58 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