1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| (* EPD Visualizer *)
program Etude;
uses
Flash8;
{$FRAME_WIDTH 484}
{$FRAME_HEIGHT 514} // 484 + 30
{$BACKGROUND $FFFFFF}
//{$FONT montreal 'Chess Montreal'}
{$FONT alfonso 'Chess Alfonso-X'}
(* Chess Montreal
True Type font by Gary Katch
http://alcor.concordia.ca/~gpkatch/montreal_font.html *)
(* Chess Alfonso-X
True Type Font by Armando H. Marroquin
http://www.enpassant.dk/chess/fonteng.htm *)
type
tNature = (nothing, pawn, knight, rook, queen, king);
tColor = (none, white, black);
tPiece = record
nature: tNature;
color: tColor;
end;
tPosition = array[1..8, 1..8]of tPiece;
tEditBox = class(textField)
procedure onKeyDown;
end;
{
const
stdPosition: tPosition = (
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none)),
((nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none), (nature: nothing; color: none))
);
}
function stdPosition: tPosition;
var
x, y: integer;
begin
for x := 1 to 8 do
for y := 1 to 8 do
begin
result[x, y].nature := nothing;
result[x, y].color := none;
end;
end;
function positionToText(aPosition: tPosition): string;
var
x, y: integer;
begin
result := '';
for y := 8 downto 1 do
begin
for x := 1 to 8 do
if (x + y) mod 2 = 0 then
result := result + ' '
else
//result := result + '/';
result := result + '+';
result := result + #10;
end;
end;
var
p: tPosition;
s: string;
f: textFormat;
t: textField;
e: tEditBox;
procedure tEditBox.onKeyDown;
begin
if Key.getAscii = 13 then
begin
//t.text := e.text;
t.text := self.text;
{
if IsValidEPD(self.text) then
t.text := EPDToText(self.text);
}
end;
end;
begin
p := stdPosition;
s := positionToText(p);
//f := textFormat.Create('montreal', 48);
f := textFormat.Create('alfonso', 48);
f.color := 0;
t := textField.Create(nil, '', 0, 0, 0, stage.width, 484);
with t do
begin
embedFonts := true;
SetNewTextFormat(f);
text := s;
end;
e := tEditBox.Create(nil, 'input', 1, 0, 484, stage.width, 30);
e.type := 'input';
Selection.setFocus(e);
Key.addListener(e);
end. |