Here's another version, that has more colors. It allows a quicker solution with lesstrial and error logic. Because I am slightly color blind, I spent a lot of time selecting the colors so that I could tell them apart.

endprocprocedure SetupPieces4() for a = 1 to 9 set image a set color 255,255,255 draw line 0,0,160,160 draw line 2,0,162,160 draw line 0,2,158,160 draw line 0,160,160,0 draw line 2,160,162,0 draw line 0,158,158,0 next set image primary set color 255,255,255

set color 255,255,255 set caret 200,100 wln " The object of this puzzle is : " wln " to move all of the pieces from the Right Side Board to the Left Side Board." wln " " wln " Each piece has 4 colors and when you place the piece on the left side board, " wln " each color should match the color of the piece that it touches. " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " Hit any key to continue. "

procedure SetColor( a ) if a = 1 then set color 0,255,0 if a = 2 then set color 0,0,255 if a = 3 then set color 255,0,0 if a = 4 then set color 0,255,150 if a = 5 then set color 200,0,100 if a = 6 then set color 255,255,0 if a = 7 then set color 100,0,100 if a = 8 then set color 150,100,255 if a = 9 then set color 0,0,120 if a = 10 then set color 240,240,255 if a = 11 then set color 20,30,40 if a = 12 then set color 150,0,0 if a = 13 then set color 0,150,0 if a = 14 then set color 255,100,150 sqrcolor = a quadColor = aendproc

endprocprocedure SetupPieces4() for a = 1 to 9 set image a set color 255,255,255 draw line 0,0,160,160 draw line 2,0,162,160 draw line 0,2,158,160 draw line 0,160,160,0 draw line 2,160,162,0 draw line 0,158,158,0 next set image primary set color 255,255,255

set color 255,255,255 set caret 200,100 wln " The object of this puzzle is : " wln " to move all of the pieces from the Right Side Board to the Left Side Board." wln " " wln " Each piece has 4 colors and when you place the piece on the left side board, " wln " each color should match the color of the piece that it touches. " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " Hit any key to continue. "

procedure SetColor( a ) if a = 1 then set color 0,255,0 if a = 2 then set color 0,0,255 if a = 3 then set color 255,0,0 if a = 4 then set color 0,255,150 if a = 5 then set color 200,0,100 if a = 6 then set color 255,255,0 if a = 7 then set color 100,0,100 if a = 8 then set color 150,100,255 if a = 9 then set color 0,0,120 if a = 10 then set color 240,240,255 if a = 11 then set color 20,30,40 if a = 12 then set color 150,0,0 if a = 13 then set color 0,150,0 if a = 14 then set color 255,100,150 sqrcolor = a quadColor = aendproc

endprocprocedure SetupPieces4() for a = 1 to 16 set image a set color 255,255,255 draw line 0,0,125,125 set color 150,150,255 draw line 2,0,125,123 draw line 0,2,125,127 set color 255,255,255 draw line 0,116,116,0 set color 150,150,255 draw line 0,114,114,-1 draw line 0,118,118,0 next set image primary set color 255,255,255

set color 255,255,255 set caret 200,100 wln " The object of this puzzle is : " wln " to move all of the pieces from the Right Side Board to the Left Side Board." wln " " wln " Each piece has 4 colors and when you place the piece on the left side board, " wln " each color should match the color of the piece that it touches. " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " " wln " Hit any key to continue. "

procedure SetColor( a ) if a = 1 then set color 0,255,0 if a = 2 then set color 0,0,255 if a = 3 then set color 255,0,0 if a = 4 then set color 0,255,150 if a = 5 then set color 200,0,100 if a = 6 then set color 255,255,0 if a = 7 then set color 100,0,100 if a = 8 then set color 150,100,255 if a = 9 then set color 0,0,120 if a = 10 then set color 240,240,255 if a = 11 then set color 20,30,40 if a = 12 then set color 150,0,0 if a = 13 then set color 0,150,0 if a = 14 then set color 255,100,150 sqrcolor = a quadColor = aendproc