Skip to content

Commit d74bfc1

Browse files
Initial commit with full sources
1 parent 2c83d69 commit d74bfc1

File tree

10 files changed

+4405
-0
lines changed

10 files changed

+4405
-0
lines changed

ChessBrd_p.dpk

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package ChessBrd_p;
2+
3+
{$R *.res}
4+
{$ALIGN 8}
5+
{$ASSERTIONS ON}
6+
{$BOOLEVAL OFF}
7+
{$DEBUGINFO ON}
8+
{$EXTENDEDSYNTAX ON}
9+
{$IMPORTEDDATA ON}
10+
{$IOCHECKS ON}
11+
{$LOCALSYMBOLS ON}
12+
{$LONGSTRINGS ON}
13+
{$OPENSTRINGS ON}
14+
{$OPTIMIZATION ON}
15+
{$OVERFLOWCHECKS OFF}
16+
{$RANGECHECKS OFF}
17+
{$REFERENCEINFO ON}
18+
{$SAFEDIVIDE OFF}
19+
{$STACKFRAMES OFF}
20+
{$TYPEDADDRESS OFF}
21+
{$VARSTRINGCHECKS ON}
22+
{$WRITEABLECONST OFF}
23+
{$MINENUMSIZE 1}
24+
{$IMAGEBASE $400000}
25+
{$IMPLICITBUILD OFF}
26+
27+
requires
28+
rtl,
29+
vcl;
30+
31+
contains
32+
ChessBrd in 'chessbrd.pas';
33+
34+
end.

ChessPrg.dfm

79.5 KB
Binary file not shown.

ChessPrg.hpp

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
// Borland C++ Builder
2+
// Copyright (c) 1995, 1998 by Borland International
3+
// All rights reserved
4+
5+
// (DO NOT EDIT: machine generated header) 'ChessPrg.pas' rev: 3.00
6+
7+
#ifndef ChessPrgHPP
8+
#define ChessPrgHPP
9+
#include <ChessBrd.hpp>
10+
#include <ExtCtrls.hpp>
11+
#include <StdCtrls.hpp>
12+
#include <Dialogs.hpp>
13+
#include <Forms.hpp>
14+
#include <Controls.hpp>
15+
#include <Graphics.hpp>
16+
#include <Classes.hpp>
17+
#include <SysUtils.hpp>
18+
#include <Messages.hpp>
19+
#include <Windows.hpp>
20+
#include <SysInit.hpp>
21+
#include <System.hpp>
22+
23+
//-- user supplied -----------------------------------------------------------
24+
25+
namespace Chessprg
26+
{
27+
//-- type declarations -------------------------------------------------------
28+
class DELPHICLASS TForm1;
29+
class PASCALIMPLEMENTATION TForm1 : public Forms::TForm
30+
{
31+
typedef Forms::TForm inherited;
32+
33+
__published:
34+
Stdctrls::TButton* ButtonBack;
35+
Stdctrls::TButton* ButtonForward;
36+
Stdctrls::TButton* Buttonnew;
37+
Stdctrls::TListBox* ListBox1;
38+
Stdctrls::TLabel* Label1;
39+
Extctrls::TRadioGroup* RadioGroup1;
40+
Extctrls::TRadioGroup* RadioGroup2;
41+
Stdctrls::TCheckBox* CheckBoxWhiteOnTop;
42+
Stdctrls::TComboBox* ComboBox1;
43+
Stdctrls::TLabel* Label2;
44+
Stdctrls::TCheckBox* CheckBoxCoords;
45+
Stdctrls::TLabel* Label3;
46+
Stdctrls::TCheckBox* CheckBoxLines;
47+
Stdctrls::TButton* ButtonStop;
48+
Stdctrls::TButton* ButtonMove;
49+
Extctrls::TImage* ImageCm36;
50+
Extctrls::TImage* ImageFr40;
51+
Chessbrd::TChessBrd* ChessBrd1;
52+
Stdctrls::TLabel* Label4;
53+
Stdctrls::TComboBox* ComboBox2;
54+
void __fastcall UpdateListBox(void);
55+
void __fastcall ButtonBackClick(System::TObject* Sender);
56+
void __fastcall ChessBrd1LegalMove(System::TObject* Sender, Chessbrd::Square oldSq, Chessbrd::Square
57+
newSq);
58+
void __fastcall ButtonForwardClick(System::TObject* Sender);
59+
void __fastcall ButtonnewClick(System::TObject* Sender);
60+
void __fastcall RadioGroup2Click(System::TObject* Sender);
61+
void __fastcall RadioGroup1Click(System::TObject* Sender);
62+
void __fastcall CheckBoxWhiteOnTopClick(System::TObject* Sender);
63+
void __fastcall ChessBrd1Draw(System::TObject* Sender);
64+
void __fastcall ChessBrd1Mate(System::TObject* Sender, Chessbrd::Square oldSq, Chessbrd::Square newSq
65+
);
66+
void __fastcall CheckBoxCoordsClick(System::TObject* Sender);
67+
void __fastcall SpinEdit1Change(System::TObject* Sender);
68+
void __fastcall Timer1Timer(System::TObject* Sender);
69+
void __fastcall CheckBoxLinesClick(System::TObject* Sender);
70+
void __fastcall ListBox1Click(System::TObject* Sender);
71+
void __fastcall ButtonMoveClick(System::TObject* Sender);
72+
void __fastcall ButtonStopClick(System::TObject* Sender);
73+
void __fastcall ComboBox1Change(System::TObject* Sender);
74+
void __fastcall ChessBrd1CalculateMove(System::TObject* Sender, Chessbrd::Square &oldsq, Chessbrd::Square
75+
&newsq);
76+
void __fastcall ChessBrd1CalculationFailed(System::TObject* Sender, Chessbrd::Square oldSq, Chessbrd::Square
77+
newSq);
78+
void __fastcall ComboBox2Change(System::TObject* Sender);
79+
public:
80+
/* TCustomForm.Create */ __fastcall virtual TForm1(Classes::TComponent* AOwner) : Forms::TForm(AOwner
81+
) { }
82+
/* TCustomForm.CreateNew */ __fastcall TForm1(Classes::TComponent* AOwner, int Dummy) : Forms::TForm(
83+
AOwner, Dummy) { }
84+
/* TCustomForm.Destroy */ __fastcall virtual ~TForm1(void) { }
85+
86+
public:
87+
/* TWinControl.CreateParented */ __fastcall TForm1(HWND ParentWindow) : Forms::TForm(ParentWindow) { }
88+
89+
90+
};
91+
92+
//-- var, const, procedure ---------------------------------------------------
93+
extern PACKAGE TForm1* Form1;
94+
95+
} /* namespace Chessprg */
96+
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
97+
using namespace Chessprg;
98+
#endif
99+
//-- end unit ----------------------------------------------------------------
100+
#endif // ChessPrg

ChessPrg.pas

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
unit ChessPrg;
2+
3+
interface
4+
5+
uses
6+
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
7+
StdCtrls, ExtCtrls, ChessBrd, Spin;
8+
9+
type
10+
TForm1 = class(TForm)
11+
ButtonBack: TButton;
12+
ButtonForward: TButton;
13+
Buttonnew: TButton;
14+
ListBox1: TListBox;
15+
Label1: TLabel;
16+
RadioGroup1: TRadioGroup;
17+
RadioGroup2: TRadioGroup;
18+
CheckBoxWhiteOnTop: TCheckBox;
19+
ComboBox1: TComboBox;
20+
Label2: TLabel;
21+
CheckBoxCoords: TCheckBox;
22+
Label3: TLabel;
23+
CheckBoxLines: TCheckBox;
24+
ButtonStop: TButton;
25+
ButtonMove: TButton;
26+
ImageCm36: TImage;
27+
ImageFr40: TImage;
28+
Label4: TLabel;
29+
ComboBox2: TComboBox;
30+
SpinEdit1: TSpinEdit;
31+
ChessBrd1: TChessBrd;
32+
procedure UpdateListBox;
33+
procedure ButtonBackClick(Sender: TObject);
34+
procedure ChessBrd1LegalMove(Sender: TObject; oldSq, newSq: Square);
35+
procedure ButtonForwardClick(Sender: TObject);
36+
procedure ButtonnewClick(Sender: TObject);
37+
procedure RadioGroup2Click(Sender: TObject);
38+
procedure RadioGroup1Click(Sender: TObject);
39+
procedure CheckBoxWhiteOnTopClick(Sender: TObject);
40+
procedure ChessBrd1Draw(Sender: TObject);
41+
procedure ChessBrd1Mate(Sender: TObject; oldSq, newSq: Square);
42+
procedure CheckBoxCoordsClick(Sender: TObject);
43+
procedure SpinEdit1Change(Sender: TObject);
44+
procedure Timer1Timer(Sender: TObject);
45+
procedure CheckBoxLinesClick(Sender: TObject);
46+
procedure ListBox1Click(Sender: TObject);
47+
procedure ButtonMoveClick(Sender: TObject);
48+
procedure ButtonStopClick(Sender: TObject);
49+
procedure ComboBox1Change(Sender: TObject);
50+
procedure ChessBrd1CalculateMove(Sender: TObject; var oldsq,
51+
newsq: Square);
52+
procedure ChessBrd1CalculationFailed(Sender: TObject; oldSq,
53+
newSq: Square);
54+
procedure ComboBox2Change(Sender: TObject);
55+
procedure FormCreate(Sender: TObject);
56+
private
57+
{ Private declarations }
58+
public
59+
{ Public declarations }
60+
end;
61+
62+
var
63+
Form1: TForm1;
64+
65+
implementation
66+
67+
{$R *.DFM}
68+
69+
70+
procedure TForm1.ButtonBackClick(Sender: TObject);
71+
begin
72+
Chessbrd1.MoveBackward;
73+
UpdateListBox;
74+
end;
75+
76+
procedure TForm1.UpdateListBox;
77+
var
78+
list: TStringList;
79+
begin
80+
list:=TStringList.Create;
81+
Chessbrd1.GetMoveList(list);
82+
ListBox1.Items:=list;
83+
list.Free;
84+
end;
85+
86+
procedure TForm1.ChessBrd1LegalMove(Sender: TObject; oldSq, newSq: Square);
87+
begin
88+
UpdateListBox;
89+
end;
90+
91+
procedure TForm1.ButtonForwardClick(Sender: TObject);
92+
begin
93+
Chessbrd1.MoveForward;
94+
UpdateListBox;
95+
end;
96+
97+
procedure TForm1.ButtonNewClick(Sender: TObject);
98+
begin
99+
Chessbrd1.NewGame;
100+
UpdateListBox;
101+
end;
102+
103+
procedure TForm1.RadioGroup2Click(Sender: TObject);
104+
begin
105+
Chessbrd1.ComputerPlaysWhite:=Boolean(RadioGroup2.ItemIndex)
106+
end;
107+
108+
procedure TForm1.RadioGroup1Click(Sender: TObject);
109+
begin
110+
Chessbrd1.ComputerPlaysBlack:=Boolean(RadioGroup1.ItemIndex)
111+
end;
112+
113+
procedure TForm1.CheckBoxWhiteOnTopClick(Sender: TObject);
114+
var
115+
v: Integer;
116+
begin
117+
Chessbrd1.WhiteOnTop:=CheckBoxWhiteOnTop.Checked;
118+
v:=RadioGroup1.Top;
119+
RadioGroup1.Top:=RadioGroup2.Top;
120+
RadioGroup2.Top:=v;
121+
122+
end;
123+
124+
procedure TForm1.ChessBrd1Draw(Sender: TObject);
125+
begin
126+
MessageDlg('Draw',mtInformation,[mbOk],0);
127+
Chessbrd1.NewGame;
128+
end;
129+
130+
procedure TForm1.ChessBrd1Mate(Sender: TObject; oldSq, newSq: Square);
131+
begin
132+
MessageDlg('Mate',mtInformation,[mbOk],0);
133+
Chessbrd1.NewGame;
134+
end;
135+
136+
procedure TForm1.CheckBoxCoordsClick(Sender: TObject);
137+
var
138+
cset: CoordSet;
139+
begin
140+
if (CheckBoxCoords.Checked) then
141+
begin
142+
Include (cset,North);
143+
Include (cset,East);
144+
Include (cset,West);
145+
Include (cset,South);
146+
end
147+
else
148+
begin
149+
Exclude (cset,North);
150+
Exclude (cset,East);
151+
Exclude (cset,West);
152+
Exclude (cset,South);
153+
end;
154+
Chessbrd1.DisplayCoords:=cset;
155+
end;
156+
157+
procedure TForm1.SpinEdit1Change(Sender: TObject);
158+
begin
159+
// Chessbrd1.SearchDepth:=SpinEdit1.value;
160+
end;
161+
162+
procedure TForm1.Timer1Timer(Sender: TObject);
163+
begin
164+
Label1.Caption:=IntToStr(integer(Chessbrd1.Thinking));
165+
end;
166+
167+
procedure TForm1.CheckBoxLinesClick(Sender: TObject);
168+
begin
169+
Chessbrd1.BoardLines:=CheckBoxLines.Checked;
170+
end;
171+
172+
procedure TForm1.ListBox1Click(Sender: TObject);
173+
begin
174+
Chessbrd1.GotoMove(1+(ListBox1.ItemIndex+1) shr 1,((ListBox1.ItemIndex+1) mod 2)=0);
175+
end;
176+
177+
178+
procedure TForm1.ButtonMoveClick(Sender: TObject);
179+
begin
180+
Chessbrd1.Think;
181+
end;
182+
183+
procedure TForm1.ButtonStopClick(Sender: TObject);
184+
begin
185+
Chessbrd1.CancelThinking;
186+
end;
187+
188+
procedure TForm1.ComboBox1Change(Sender: TObject);
189+
begin case ComboBox1.ItemIndex of
190+
0: Chessbrd1.CustomPieceSet:=nil;
191+
1: Chessbrd1.CustomPieceSet:=ImageFr40.Picture.Bitmap;
192+
2: Chessbrd1.CustomPieceSet:=ImageCm36.Picture.Bitmap;
193+
end;
194+
end;
195+
196+
procedure TForm1.ChessBrd1CalculateMove(Sender: TObject; var oldsq,
197+
newsq: Square);
198+
begin
199+
while (Chessbrd1.moveIsLegal(oldsq,newsq)=FALSE) do
200+
begin
201+
oldSq:=Square(random(65));
202+
newSq:=Square(random(65));
203+
end;
204+
end;
205+
206+
procedure TForm1.ChessBrd1CalculationFailed(Sender: TObject; oldSq,
207+
newSq: Square);
208+
begin
209+
//
210+
end;
211+
212+
procedure TForm1.ComboBox2Change(Sender: TObject);
213+
begin
214+
Chessbrd1.CustomEngine:=(comboBox2.ItemIndex=1);
215+
end;
216+
217+
procedure TForm1.FormCreate(Sender: TObject);
218+
begin
219+
Randomize;
220+
end;
221+
222+
end.

Player.dpr

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
program Player;
2+
3+
uses
4+
Forms,
5+
ChessPrg in 'ChessPrg.pas' {Form1},
6+
ChessBrd in '..\chessbrd.pas';
7+
8+
{$R *.RES}
9+
10+
begin
11+
Application.Initialize;
12+
Application.CreateForm(TForm1, Form1);
13+
Application.Run;
14+
end.

0 commit comments

Comments
 (0)