I see Parallel example.But I still do not have idea to write chess program.
Please help,thanks
type
Tboard=array[0..9,0..9] of integer;
var
Board:Tboard;
procedure TForm1.Button1Click(Sender: TObject);
var tempmovelist:Tstringlist;SideisRed:Boolean;Score,bestscore:Integer;bestmovestep:string;
begin
// for testing
bestscore :=-1000;
SideisRed := True;
tempmovelist:= Tstringlist.create;
try
Makemovelist(Board,SideisRed,tempmovelist);
Score := Parallel.ForEach(1, tempmovelist.count)
.NumTasks(inpNumCPU.Value)
.Aggregate() <-- write what thing here ?
.Execute(
procedure (const value: integer; var result: TOmniValue) <-- Don't know right or not
begin
MinMax(Board,-SideisRed,score,depth-1);
score := -score;
If score > bestscore then
begin
bestscore :=score;
bestmovestep := tempmovelist[???] <-- Total don't know
end;
end
);
// output bestscore and bestmovestep
finally
tempmovelist.free;
end;