51 lines
1.6 KiB
Text
51 lines
1.6 KiB
Text
proc DrawRect(X0, Y0, W, H, Color);
|
|
int X0, Y0, W, H, Color, Y;
|
|
for Y:= Y0 to Y0+H-1 do
|
|
[Move(X0, Y); Line(X0+W-1, Y, Color)];
|
|
|
|
proc DrawEdge(PX, PY, Colors, Edge);
|
|
int PX, PY, Colors, Edge;
|
|
int C;
|
|
[C:= Colors(Edge);
|
|
Move(PX, PY);
|
|
Line(PX+11, PY, C(0));
|
|
Line(PX+11, PY+11, C(1));
|
|
Line(PX, PY+11, C(2));
|
|
Line(PX, PY, C(3));
|
|
];
|
|
|
|
def ScrW=256, ScrH=256;
|
|
def LT=0, TR=1, RB=2, BL=3; \left top, etc.
|
|
def White = $ffffff, Black = 0;
|
|
def LightOlive = $d3d004, PaleBlue = $3250ff;
|
|
int Edges, Colors, X, Y, PX, PY;
|
|
[SetFB(ScrW, ScrH, 24);
|
|
\Signifies white and black edges on the blue squares
|
|
Edges:= [
|
|
[LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB],
|
|
[LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL],
|
|
[TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL],
|
|
[TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT],
|
|
[RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT],
|
|
[RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR],
|
|
[BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR],
|
|
[BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB],
|
|
[LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB],
|
|
[LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL],
|
|
[TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL],
|
|
[TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT] ];
|
|
Colors:= [
|
|
[White, Black, Black, White],
|
|
[White, White, Black, Black],
|
|
[Black, White, White, Black],
|
|
[Black, Black, White, White] ];
|
|
DrawRect(0, 0, ScrW, ScrH, LightOlive);
|
|
for X:= 0 to 11 do
|
|
[PX:= 27 + X*17;
|
|
for Y:= 0 to 11 do
|
|
[PY:= 27 + Y*17;
|
|
DrawRect(PX, PY, 12, 12, PaleBlue);
|
|
DrawEdge(PX, PY, Colors, Edges(Y,X));
|
|
];
|
|
];
|
|
]
|