I have added the ability to use entirely custom piece sets in a game. These are defined in GAME Code and do not use an external PHP file. Here is some sample code I wrote:
// A demo of using multiple internal sets that do not match any set file.
// Name the sets you will use by assigning them to the $groupsets array.
// Use capitalized names for the sets. These do not match any file names.
setsystem groupsets array Abstract Alfaerie AlfaeriePNG Magnetic Motif;
// Define pieces in an array variable called mypieces.
// Start by creating an associative array of all pieces shared in common.
// The key should be a label, and the value should be a filename.
// A single line of code is broken into multiple lines of text for legibility.
set mypieces assoc
K "WKing.gif" k "BKing.gif"
Q "WQueen.gif" q "BQueen.gif"
R "WRook.gif" r "BRook.gif"
B "WBishop.gif" b "BBishop.gif"
N "WKnight.gif" n "BKnight.gif"
P "WPawn.gif" p "BPawn.gif";
// Set the $dir system variable to match the set, and modify filenames as needed.
if == pieceset Alfaerie:
setsystem dir "/graphics.dir/alfaerie/";
foreach (k v) #mypieces:
setelem mypieces #k tolower #v;
next;
elseif == pieceset AlfaeriePNG:
setsystem dir "/graphics.dir/alfaeriePNG/";
foreach (k v) #mypieces:
setelem mypieces #k tolower str_replace .gif .png #v;
next;
elseif == pieceset Magnetic:
setsystem dir "/graphics.dir/magnetic/";
elseif == pieceset Motif:
setsystem dir "/graphics.dir/motif/";
else:
// Have a default set for when the set does not match any allowed set.
// The default is Abstract.
setsystem dir "/graphics.dir/abstract/";
endif;
// Now that the pieces are defined, copy the #mypieces array to $pieces
setsystem pieces #mypieces;
I have added the ability to use entirely custom piece sets in a game. These are defined in GAME Code and do not use an external PHP file. Here is some sample code I wrote: