and here's my 308:
Code:

Function s($i)
dim $d,$,$_,$k,$t

$ = " "
for $_=1 to $i $=W + $ + B next
$t=$

for $i=6 to 9
if $i>5 $_=$_<1 endif
for $k=1 to 2
$d = instr($," ")
if iif($_,W,B)=substr($,$d+$k-2*$_*$k,1) & ($_ ^ W=substr($,$d-1+2*$_,1)) | $i>5
$i = "B "," W","BW "," BW"
$ = left($,$d-1-$_*$k) + $i[2*(1<$k)+$_] + substr($,$d+1+$k-$k*$_)
$t = $t + ! + $
$s = split($t,!)
$i = 0
EndFunction